STM32通过串口如何接收服务器发来的数据
生活随笔
收集整理的這篇文章主要介紹了
STM32通过串口如何接收服务器发来的数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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)//判斷是否為普通心跳返回{} }總結
以上是生活随笔為你收集整理的STM32通过串口如何接收服务器发来的数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32的时钟系统RCC详细整理
- 下一篇: STM32 USART串口DMA 接收和