完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
目的:
串口通信发送的数据是以ASCII码形式,对数据进行处理需要将ASCII码转换成数值,对数值转换成二进制,再根据帧格式对其拆帧。 流程; 1、接收串口发送的数据(串口中断服务函数) 2、将串口发送的数据转换为数值。 3、将数值转换成二进制 4、对二进制根据帧格式进行拆帧,并发送给串口显示。 STM32学习 第一次动手编程: STM32学习 第一次动手编程: 主函数: int main(void) { u16 num_r; u16 num_t; u8 t; u8 len; u16 times=0; u8 b[16]={0}; int y=0; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2 delay_init(168); //延时初始化 uart_init(115200); //串口初始化波特率为115200 LED_Init(); //初始化与LED连接的硬件接口 while(1) { //赋初值 不然会出错 for(t=0;t<15;t++) { b[t]=0;} y=0; if(USART_RX_STA&0x8000) { len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度 for(t=0;t b[t]=USART_RX_BUF[t];//将发送的数存到数组中 } num_r=atoi(b); //将数组转成数值 printf("num_r=%drn",num_r); //将十进制数转换成二进制 while(num_r!=0) { b[15-y]=num_r%2; num_r=num_r/2; y++; } //-------以下为解码-------- printf("UID="); for(t=0;t<4;t++) { printf("%d",b[t]); } printf("rn"); printf("pre="); for(t=4;t<8;t++) { printf("%d",b[t]); } printf("rn"); printf("type="); for(t=8;t<10;t++) { printf("%d",b[t]); } printf("rn"); printf("sub_type="); for(t=10;t<14;t++) { printf("%d",b[t]); } //-------解码完成-------- USART_RX_STA=0; } else { times++; if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行. delay_ms(10); } } } 备注: 1、atoi()为ASCII码转换为二进制函数; u16 atoi(u8 s[]) { u16 i,n; n=0; for(i=0;s>='0'&&s<='9';i++) { n=10*n+(s-'0'); } return n; } 2、以正点原子STM32探索者开发板为实验平台。串口发送数据会触发串口中断服务函数(此时会将USART_RX_STA赋值0x8000) |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1758 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1613 浏览 1 评论
1053 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1931浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
721浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
563浏览 3评论
590浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
548浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 00:47 , Processed in 0.700648 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号