完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32通过串口如何接收服务器发来的数据代码如下:
//在stm32f10x_it.c中的代码 void USART1_IRQHandler(void) { u8 GetData; if(USART_GetITStatus(USART1, USART_IT_RXNE)!=RESET) { USART_ClearITPendingBit(USART1,USART_IT_RXNE); GetData=(u8)USART_ReceiveData(USART1)&0xff; Usart1_buf[usart1_lent]=GetData; usart1_lent++; } if (USART_GetITStatus(USART1, USART_IT_TC) != RESET) { USART_ITConfig(USART1, USART_IT_TC, DISABLE); USART_ClearITPendingBit(USART1, USART_IT_TC); } if(USART_GetFlagStatus(USART1,USART_FLAG_ORE)==SET) { USART_ClearFlag(USART1,USART_FLAG_ORE); USART_ReceiveData(USART1); } } //main()函数中的代码 //服务器发来的数据放在Usart1_buf数组中 u8 Usart1_buf[256]; unsigned int usart1_lent = 0; void check_ser(void) { a = strstr(Usart1_buf, "1"); b = strstr(Usart1_buf, "12"); c = strstr(Usart1_buf, "123"); d = strstr(Usart1_buf,"1234"); if(NULL != a && usart1_lent==1)//当服务器发来1时干某事 { } else if(NULL != b && usart1_lent==2)//当服务器发来12时干某事 { } else if(NULL != c && usart1_lent==3)//当服务器发来123时干某事 { } else if(NULL != d && usart1_lent==4)//当服务器发来1234时干某事 { } else if(Usart1_buf[0]=='['&&Usart1_buf[17]==']'&& usart1_lent==18)//判断是否为获取时间参数 { } else if (Usart1_buf[0]=='O'&&Usart1_buf[1]=='K' && usart1_lent==2)//判断是否为普通心跳返回 { } } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1307 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1319 浏览 1 评论
729 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
537 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1341 浏览 2 评论
1734浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
449浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
397浏览 3评论
387浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
366浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-22 07:36 , Processed in 0.739657 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号