免按RST一键烧录功能:

使用开发板调试的时候经常要烧录验证,不断的按rst键非常影响效率,于是想着看能不能不按rst键自动进入复位然后自动下载。
代码:
首先我们把rst信号接入到自己选的P02脚,然后初始化

/*****************************************************
*函数名称: SC_GPIO_Init
*函数功能: GPIO初始化函数
*入口参数:void
*出口参数:void
*****************************************************/
void SC_GPIO_Init(void)
{GPIO_Init(GPIO0, GPIO_PIN_1,GPIO_MODE_OUT_PP);GPIO_Init(GPIO0, GPIO_PIN_2,GPIO_MODE_OUT_PP);GPIO_WriteHigh(P0_2);/*GPIO_Init write here*/
}
一键复位函数:

void auto_FLASH(void)
{if((RX_BUFF[1]==0x01)||(RX_BUFF[2]==0x00)||(RX_BUFF[3]==0x00))//点击“更新程序”串口RX_BUFF会更新,PC会向单片机串口不断发送68 01               00 00 69 16 数据(请求进入BootLoader){GPIO_WriteLow(P0_2);//接单片机复位脚}
}
中断函数:
void USCI1Interrupt()                interrupt 15
{        if(USCI1_GetFlagStatus(USCI1_UART_FLAG_RI)){if(rx_flag>=6) rx_flag=0;RX_BUFF[rx_flag]=USCI1_UART_ReceiveData8();rx_flag++;USCI1_UART_SendData8( USCI1_UART_ReceiveData8());//发送完成置0while(USCI1_GetFlagStatus(USCI1_UART_FLAG_TI));USCI1_ClearFlag(USCI1_UART_FLAG_RI);//软件置1}USCI1_ClearFlag(USCI1_UART_FLAG_RI);USCI1_ClearFlag(USCI1_UART_FLAG_TI);}

ADC获取输入电压:

float get_vdd(void)//获取输入电压值
{u16 i=0,time_err=0;u32 adc_value=0;ADC_VrefConfig(ADC_VREF_2_048V);//设置参考电压for(i=0;i<10;i++)//采样次数{ADC_ChannelConfig(ADC_CHANNEL_VDD_D4,ENABLE);ADC_StartConversion();while(!ADC_GetFlagStatus())                                  //等待 ADC转换完成;{time_err++;if(time_err>=500){ADC_ClearFlag();break;}                                }ADC_ClearFlag();adc_value+=ADC_GetConversionValue();}adc_value/=10;return (adc_value*0.002);//adc_value*2.048/4096*4  可以提前算出已知变量2.048/4096*4=0.002
}
获取任意ADC通道:

u16 adc_get_value(ADC_Channel_TypeDef ADC_Channel)//获取ADC通道值ADC_CHANNEL_0~ADC_CHANNEL_15
{u16 i=0,time_err=0;u32 adc_value=0;ADC_VrefConfig(ADC_VREF_VDD);//设置参考电压for(i=0;i<10;i++)//采样10次{ADC_ChannelConfig(ADC_Channel,ENABLE);ADC_StartConversion();while(!ADC_GetFlagStatus())                        //等待 ADC转换完成;{time_err++;if(time_err>=500) {ADC_ClearFlag();break;}}ADC_ClearFlag();adc_value+=ADC_GetConversionValue();}return adc_value/10;
}
延时和串口重定向:
 void delay_10us()
{/*<UserCodeStart>*//*<SinOne-Tag><47>*/unsigned char a,b;for(b=1;b>0;b--)for(a=157;a>0;a--);/*<UserCodeEnd>*//*<SinOne-Tag><47>*/
}
32mhz 延时1msvoid delay_1ms(void)
{/*<UserCodeStart>*//*<SinOne-Tag><26>*/u32 i=579;while(i--);/*<UserCodeEnd>*//*<SinOne-Tag><26>*/
}void delay_ms(u32 i)
{/*<UserCodeStart>*//*<SinOne-Tag><29>*/while(i--){delay_1ms();}/*<UserCodeEnd>*//*<SinOne-Tag><29>*/
}void sendByte(u8 dat)
{/*<UserCodeStart>*//*<SinOne-Tag><103>*/delay_10us();//没有延时会发送失败delay_10us();//        delay_1ms();USCI1_UART_SendData8(dat);//发送完成置零while(USCI1_GetFlagStatus(USCI1_UART_FLAG_TI));USCI1_ClearFlag(USCI1_UART_FLAG_TI);//        delay_1ms();/*<UserCodeEnd>*//*<SinOne-Tag><103>*/
}void sendString(unsigned char *string)
{/*<UserCodeStart>*//*<SinOne-Tag><105>*/while(*string!='\0') //指针的数据没到最后一位一直执行循环体{   sendByte(*string); //发送指针指向的数据(字节byte)string++;            //指针自增,指向下一个数据 }/*<UserCodeEnd>*//*<SinOne-Tag><105>*/
}/*
KEIL里扩展出了b,h,l来对输入字节宽的设置:
(1)b八位
(2)h十六位(默认)
(3)l三十二位
注意包含 #include <stdio.h>
在Keil C51中用printf输出一个单字节变量时要使用%bd,如
unsigned char counter;
printf(“Current count: %bd\n”, counter);//输出8位”十进制有符号整数”
printf(“Current count: %bx\n”, counter);//输出8位”无符号以十六进制表示的整数”
*/
char putchar(char c){sendByte(c);return c;
}/*************************************.Generated by EasyCodeCube.************************************/

main函数:

void main(void)
{        unsigned char  b=0;// MCU initSC_Init();while(1){GPIO_WriteLow(P0_1);delay_ms(500);auto_FLASH();printf("\r");printf("%bu,%bu \r",b++,sizeof(b));//%d=short, %bd=char, %ld=long   u=unsigned du,bu,luprintf("AIN0_adc= %d,AIN0_voltage= %.2f \r",adc_get_value(ADC_CHANNEL_0),get_vdd()/4096*adc_get_value(ADC_CHANNEL_0));printf("VDD= %.2F \r",get_vdd());GPIO_WriteHigh(P0_1);delay_ms(500);}}

串口打印:

180,1
AIN0_adc= 2639,AIN0_voltage= 3.30
VDD= 5.12 181,1
AIN0_adc= 2637,AIN0_voltage= 3.30
VDD= 5.12 182,1
AIN0_adc= 2639,AIN0_voltage= 3.30
VDD= 5.11 

演示视频

新定义MCU开发板测评+免rst一键烧录+串口重定向打印+ADC相关推荐

  1. 【致敬未来的攻城狮计划】--RA2E1 开发板测评(4)UART通讯

    前言 (1)首先感谢 李肯前辈的活动,从而申请到了RA2L1开发板的测评. (2)学习本文之前要具备的知识: [致敬未来的攻城狮计划]--RA2E1 开发板测评(1)keil环境配置: [致敬未来的攻 ...

  2. [首发] 多方位玩转“地平线新发布AIoT开发板——旭日X3派(Sunrise x3 Pi)” 插电!开机!轻松秒杀!

    有幸在发布会前拿到了开发板,可以提前对开发板测试,感受下新品AIoT的魅力.(我这个是体验装,不花钱,需要啥设备他们还得给我买→_→) 下面我将以自己的科研项目经历来对这款芯片进行评估,简单来说,就是 ...

  3. 【致敬未来的攻城狮计划】--RA2E1 开发板测评(2)LED闪烁

    前言 (1)首先感谢 李肯前辈的活动,从而申请到了RA2L1开发板的测评. (2)注意,学习本文之前要学习 瑞萨Renesas RA2L1 开发板测评(1)--keil环境配置: (3)我们拿到开发板 ...

  4. AB32开发板测评:GPIO控制RGB彩灯

    文章目录 [AB32VG1]开发板测评:RGB彩灯 一.初始准备 1.硬件平台 2.软件平台 二.操作步骤 1.RTT环境生成 2.RTT程序编写 3.程序下载,观察现象 三.心得 [AB32VG1] ...

  5. FPGA新起点V1开发板(二)——Quartus II软件的安装和USB-BLaster驱动安装

    文章目录 一.Quartus II软件的安装 二.USB-BLaster驱动安装 一.Quartus II软件的安装 当然,这种东西我要是再写一遍就很无聊了,这里给出方法和连接 视频:Quartus ...

  6. 海图SD3403开发板测评

    今天给大家带来一款高性价比的嵌入式开发板测评--海图HT-SD3403.这是一款基于SD3403芯片设计的嵌入式开发板,最近使用的人很多啊,笔者这里也是买了一块,我们来看一下,他的具体的情况. 首先, ...

  7. UDI Tegra K1 SOC安卓游戏开发板测评

    UDI Tegra K1 SOC安卓游戏开发板测评 据我所知,优地科技的这款开发板是业内首款基于NVIDIA 的Tegra K1主芯片的安卓嵌入式高性能计算开发板,它的强大之处,可能只有亲自体验才能真 ...

  8. 新唐MCU开发流程解析:从MCU原型设计到样机测试

    MCU(Microcontroller Unit)是一种集成电路芯片,具有微处理器.存储器.输入输出端口等多种功能,广泛应用于各种电子设备中.颖特新(颖特新单片机)代理品牌新唐科技是国内领先的MCU芯 ...

  9. 【Renesas RA6M4开发板之UART与Serial studio串口交互】

    [Renesas RA6M4开发板之UART与Serial studio串口交互] 1.0 UART简介 1.1 原理 1.2 访问 PWM 设备 2. RT-theard配置 2.1 硬件需求 2. ...

最新文章

  1. web.py使用要点
  2. python教程是什么-Python基础教程_Python入门知识
  3. sort--排序函数
  4. Java内存模型深度解析:final--转
  5. python3读取excel方法封装_Python读取Excel的方法封装
  6. Oracle10g下载地址
  7. javaweb学习总结(十):HttpServletRequest对象(一)
  8. 【codeforces】【比赛题解】#849 CF Round #431 (Div.2)
  9. php集成环境怎么打开,PHP集成开发环境PhpStorm快速入门指南(二):打开一个项目...
  10. xml不显示css样式_如何使用CSS显示XML?
  11. iOS开发 UILabel实现自适应高宽
  12. python删除特定的几行数据_Python:分成几行,并根据搜索删除特定行 - python
  13. glassfish 自定义 jaas realm
  14. 每天一个linux命令
  15. Set集合之HashSet添加的数据是如何保证不重复的
  16. 这8款数据恢复软件你见过吗?数据恢复软件推荐
  17. 计算机专业英语讲课笔记(1)
  18. Chromium OS Developer Guide
  19. 10个3d立体字ps金属字图层样式下载
  20. 「雕爷学编程」Arduino动手做(13)——触摸开关模块

热门文章

  1. 硅谷性别歧视案女高管鲍康如败诉
  2. ADBKeyBoard.apk 切换Android输入法完美解决中文输出
  3. 阿里暑期实习c\c++研发工程师一面经历
  4. HTML/CSS实现小米官网搜索框效果
  5. 专家解释有关地震的3大问题:动物真能预报地震吗
  6. 在Firefox国际版使用中国版账户(火狐通行证)傻瓜解决办法
  7. MQ 入门(一)——MQ、JMS的了解与 activemq 基本操作
  8. 常见音乐文件格式介绍 (转)
  9. 快递查询教程,批量查询物流,正在途中、已签收的单号怎么查询
  10. 复试21天Day 17