「STM32入门」USART串口通信

通信

通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统

通信协议:制定通信的规则,通信双方按照协议规则进行数据收发

STM32常见的通信协议 

本文将介绍USART 

概念解释

  1. TX、RX分别是Transmit和Receive的缩写,代表发送、接受数据
  2. 全双工的含义是发送线路和接受线路互不影响,可以同时进行
  3. 异步指的是没有时钟线的通信,需要通信双方制定帧头帧尾,通信频率等参数
  4. 单端电平指的是通信双方的电压都是以GND为参考电压的,因此这两个设备需要共地
  5. 点对点指的是这个通信只支持两个设备间进行通信

硬件电路连接抽象图 

 

串口参数及时序 

⚠️  几个需要注意的点

  1. 第二张图D7的后一位是奇偶校验位
  2. 波特率决定了串口通信的速度,举个例子,如果波特率为1000bps,那么一秒就会传输1000个数据,每传输一个数据耗时1毫秒。
  3. 高电平作为空闲位,因此每当传输开始,发送方要先传送一个起始位,也就是低电平,告诉接受方我即将要传输数据了。传输结束后,要传输一个停止位恢复高电平。总结来说,就是TX引脚定时翻转电平,RX引脚定时读取电平,即可完成数据的传输。
  4. 数据位是低位先行,举个例子,比方说要传输一个0x0F的数据,将它转化为二进制就是00001111,那么传输的顺序应该是 1 1 1 1 0 0 0 0。

 USART外设简介

 USART基本结构图

当数据由数据寄存器TDR转到移位寄存器时,会置一个标志位TXE,我们判断这个标志位,就可以知道是不是可以开始写入下一个数据了。

接收部分也是类似的,在接受控制器的控制下,一位一位地移入接收移位寄存器,移完一帧数据后,数据就会统一转运到接收数据寄存器,并置一个RXNE的标志位,我们检查这个标志位,就可以知道是不是接收到数据了。同时这个标志位也可以申请中断,这样就可以在接收到数据时,直接进入中断函数,然后快速地读取和保存数据。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
STM32CUBEIDE是一种用于开发STM32微控制器的集成开发环境。它支持多种串口通信协议,包括USART和UART。根据引用,STM32微控制器具有多个USART和UART接口。其中,USART1的时钟来源于APB2总线时钟,最大频率为72MHz,而其他四个USART和UART接口的时钟来源于APB1总线时钟,最大频率为36MHz,如引用所述。 要在STM32CUBEIDE中进行串口通信,可以使用USART和UART接口。根据引用,USART接口支持同步单向通信和半双工单线通信,并且还支持LIN、智能卡协议和IrDA SIR ENDEC规范以及调制解调器操作 (CTS/RTS)。而UART接口只支持异步传输功能,因此没有SCLK、nCTS和nRTS功能引脚,如引用所述。 要在STM32CUBEIDE中配置和使用串口通信功能,您可以按照以下步骤进行操作: 1. 打开STM32CUBEIDE集成开发环境,并创建一个新的工程或打开现有的工程。 2. 在工程中选择要使用的STM32微控制器型号,并配置时钟和引脚设置。 3. 在配置文件中找到串口配置部分,并选择要使用的USART或UART接口。 4. 根据您的需求,配置串口的参数,例如波特率、数据位数、停止位数、校验位等。 5. 在代码中编写相应的初始化函数和发送/接收函数,以实现串口通信功能。 6. 构建和烧录代码到STM32微控制器中,并连接电脑与微控制器的串口进行通信。 请注意,具体的配置和代码实现可能会根据您使用的具体STM32微控制器型号和通信需求而有所不同。因此,建议您参考相关的STM32CUBEIDE文档和参考手册,以获取更详细的指导和示例代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [STM32F1与STM32CubeIDE快速入门-USART/UART串口通信](https://blog.csdn.net/wujuxKkoolerter/article/details/123263120)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [【CubeIDE】STM32 HAL库史上最详细教程(一):UART串口收发](https://blog.csdn.net/qq_42652838/article/details/107776265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UESTC_KS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值