首页 > 其他分享 >正点原子STM32-串口协议学习笔记

正点原子STM32-串口协议学习笔记

时间:2022-12-21 16:25:57浏览次数:53  
标签:STA Res RX STM32 正点 串口 接收 BUF USART2

bit15 bit14 bit13~0
接收完成标志 接收到0x0d 接收到的有效字节数
 
过程:接收 a b c d 然后 /n  最后立结束标志位为1
对数组 USART2_RX_BUF[] 处理时,发现数组不会存入/r/n,但是进入接收函数的字符 都带/r/n。所以在做字符串对比时
  if (strcmp(USART2_RX_BUF,"ok\r\n") ==0) printf("ok"); 字符串 "ok"不能传入 "ok\r\n"则不能比对


if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾) { Res =USART_ReceiveData(USART2); //读取接收到的数据 1、(接收数已字节为单位) 假设发送 “abcd/r/n” 轮询进入函数 //0x80000 = 1000 0000 0000 0000 判断bit15 0或者1 详情看表格 if((USART2_RX_STA&0x8000)==0)//接收未完成 { if(USART2_RX_STA&0x4000)//接收到了0x0d { if(Res!=0x0a)USART2_RX_STA=0;//接收错误,重新开始 else { USART2_RX_STA|=0x8000; //接收完成了 USART2_RX_BUF[USART2_RX_STA&0X3FFF]=Res ;//作者添加忽略 USART2_RX_STA++;//作者添加忽略 } } else //还没收到0X0D { if(Res==0x0d){ USART2_RX_STA|=0x4000; USART2_RX_BUF[USART2_RX_STA&0X3FFF]=Res ;//作者添加忽略 USART2_RX_STA++;//作者添加忽略 } else { USART2_RX_BUF[USART2_RX_STA&0X3FFF]=Res ; USART2_RX_STA++; if(USART2_RX_STA>(USART2_REC_LEN-1))USART2_RX_STA=0;//接收数据错误,重新开始接收 } } } }

 

标签:STA,Res,RX,STM32,正点,串口,接收,BUF,USART2
From: https://www.cnblogs.com/fanhuahe/p/16996471.html

相关文章

  • STM32F103使用FSMC对接正点原子3.5寸TFTLCD屏幕
    fsmc的使用算是32里面有点绕的一个知识点,但是想明白了其实也没啥了。  首先我先放32个0在这儿:0000  0000  0000  0000  0000  0000  0000  0000  ......
  • STM32MP157开发板调试笔记
    作者:树哥邮箱:[email protected]一、前言​最近在ODYSSEY-STM32MP157C板子上移植arm-trusted-firmware、u-boot以及linux(其实这个开发板官方是有提供完整的......
  • MCS51 串口编程 proteus 仿真
    1.下载proteus8.9中文版,按网上的安装指导破解安装,安装后的sample目录下有很多例子,可以先调出来仿真看看2.安装后一些常见的MCU的C语言编译器需要在源代码界面的系统/......
  • 串口接收模块——verilog实现
    1、设计想法原理与之前的串口发送模块一样,1位的数据位和8位的数据位再加上1位的停止位。唯一不同的是在接收的时候要考虑到有干扰的情况下,为了避免干扰,我们对每位数据进行......
  • STM32时钟配置笔记
    时钟配置获取当前时钟源及总线频率RCC_ClocksTypeDefRCC_CLK;//写在main()的最前面,定义要在赋值前面RCC_GetClocksFreq(&RCC_CLK);//Getchipfrequenciesprintf("Sys......
  • Web Serial Debug-浏览器串口调试工具
    WebSerialDebug浏览器串口调试工具仅测试了Edge和Chrome浏览器,其他浏览器未测试是否可用在线体验:https://itldg.github.io/web-serial-debug/国内体验:https......
  • 从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(一)移植FreeRTOS到STM32第一部分
    一、 STM32的裸机工程模板:相信学FreeRTOS的同学一定学过stm32,所以可以用自己的工程作为模板即可。或者去火哥论坛下一份模板程序。二、下载FreeRTOSV9.0.0源码:获取 Fr......
  • STM32用PWM波控制呼吸灯代码
    pwm.c#include"pwm.h"//TIM3-CH3//PB0voidPWM_Config(void){ GPIO_InitTypeDefGPIO_InitStruct; TIM_TimeBaseInitTypeDefTIM_TimeBaseInitStruct; TIM_OCIni......
  • GPS开发(2)GPS ROS串口采集-pubx数据解析
      pubx协议数据解析   CMakeLists.txt  cmake_minimum_required(VERSION3.0.2)project(v1_GetGPS)##CompileasC++11,supportedinROSKineti......
  • STM32基本定时器控制LED闪烁代码
    led.c#include"led.h"voidLED_Config(void){ GPIO_InitTypeDefGPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitStruct.......