STM32-HAL-UART
同步工作模式就是在异步工作模式下多加了一根线CKclock时钟线有了这条线之后收发双方就可以同步起来USART 简介USARTUniversal Synchronous/Asynchronous Receiver/Transmitter是一种通用串行通信接口支持同步和异步通信模式。广泛应用于微控制器、传感器、工业设备等场景实现设备间的数据传输。发送方通过TX把数据发送给接收方但是数据的收发需要遵从一定的格式串口数据收发格式串口是以数据帧为传输数据的单位的数据帧一般由一位起始位8/9位数据位0.5/1/1.5/2位停止位数据传输步骤结合上图起始位数据开始传输前串口处于空闲状态数据线上是高电压发送方将数据线拉低这样就发送给了一个起始位表示数据传输的开始后边紧跟着的是数据位数据传输中高电压表示1低电压表示0。数据位数据的发送是以二进制形式进行如十进制数字100转换为二进制就是0110 010064324再把它翻转过来低位在前高位在后即0010 0110 遇到1就发送高电压遇到0就发送低电压停止位通过保持一段时间的高电压来发送停止位停止位的长度是可以设置的由0.5/1/1.5/2位这四种停止位一般选择1位停止位停止位标志着数据帧的结束之后串口重新进入空闲状态。四种数据位设置形式1.8位数据位无校验位每次传输数据为1字节8比特位2.8位数据位有校验位每次传输数据为不足1字节7比特位3.9位数据位无校验位每次传输数据为超过1字节9比特位4.9位数据位有校验位每次传输数据为1字节8比特位习惯上以字节为单位传输数据所以一般选择8位无校验和9位有校验校验位的使用方法如上图所示9位数据位有校验就是8为数据位1位校验位85转换为二进制为0101 0101 翻转写入是1010 1010奇校验就是要求数据为中有及数个1例如上图有四个1那么校验位就是1如果传输校验之后有偶数个1则是传输出错偶校验同理波特率波特率越高数据传输的越快USART发送数据USART模式参数配置如上图所示是Cube MX的配置图这里选择115200波特率8比特数据位无校验1位停止位数据传输方为收发双向串口1的句柄包含了和串口1相关的所有数据但是现在不需要理解了解即可要通过串口发送数据需要用到下列函数代码实现注意要使用strlen测量字符串长度需要加入下面的头文件USART接收数据需要用到下图函数这里解释一下第四个参数TImeoutHAL_MAX_DELAY表示超时时间是无限大如果没有接收到足够数量的数据就会一直等待下去代码实现如下
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2566655.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!