STM32下串口通信——HAL库

本文详细介绍了STM32串口通信的方式,包括串行与并行、同步与异步、单工、全双工和半双工的区别。接着讲解了串口通信协议,如电平标准、数据包组成。然后介绍了STM32的USART功能及USB转TTL的原理。最后,通过HAL库在STM32上实现了串口通信,包括项目创建、时钟配置、代码编写及烧录验证。
摘要由CSDN通过智能技术生成


一、串口通信的方式

1、串行和并行通信

  • 串行通信: 设备间通过一根数据信号线,按数据位形式一位一位地传输数据的通信方式,同一时刻只能传输一位数据。
    在这里插入图片描述
  • 并行通信: 使用8、16、32或者更多的数据线进行通讯的方式,同一时刻可以传输多个数据位。
    在这里插入图片描述

对比两者的通信方式,发现并行通信方式比串行通信方式速度快多了,但是并行同行需要多根数据线进行传输,相对于串行通信需要更高的成本,而且对传输时钟同步的要求比较高,会存在许多信号干扰的问题。

2、同步通信和异步通信

  • 异步通信: 不需要时钟信号进行数据同步,它们直接在数据信号中穿插一些同步用的信号位,或者把主体数据进行打包,以数据帧的格式传输数据,某些通讯中还需要双方约定数据的传输速率(波特率),以便更好地同步。
  • 同步通信: 相反,同步通信收发设备双方会使用一根信号线来约束时钟,在时钟信号的驱动下进行数据的同步和传输。

3、单工、全双工和半双工通信

  • 单工通信: 信息只能单方向传输的工作方式,一个固定为发送设备,另一个固定为接收设备,发送端只能发送信息不能接收信息,接收端只能接收信息不能发送信息,只需一根信号线就可以完成通信。
  • 全双工通信: 在同一时刻,收发双方设备之间可以同时进行数据的收发,但这种方式要求通信双方均有发送设备和接收设备。需要两根数据线来完成通信。
  • 半双工通信: 半双工通信
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用STM32G4的HAL库进行串口通信的例程中,可以使用fputc函数来完成重定向的工作。重定向时,我们可以将fputc函数的形参ch作为要发送到串口的数据。在使用printf函数时,它首先调用fputc函数,然后使用ST库的串口发送函数USART_SendData将数据转移到发送数据寄存器TDR,从而触发串口向PC发送相应的数据。在调用完USART_SendData函数后,需要使用while(USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET)语句来不停地检查串口发送是否完成的标志位TC,并保持检测直到标志位为"完成",然后才能进入下一步的操作,以避免出错。同时,通过使用电平转换芯片,可以将串口信号线中使用的RS-232标准的电平信号转换成控制器能识别的TTL标准的电平信号,以实现通信。具体的例程可以在CubeMX下完成,并且可以参考模拟IIC HAL库移植而来的程序(例如基于HAL库模拟IIC驱动1.54寸OLED屏幕的例程)。如果需要获取模拟IIC HAL库驱动例程和本案例的完整代码工程,可以通过在公众号中回复IIC驱动获取下载地址来获取。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [STM32G431——串口通信](https://blog.csdn.net/m0_65088451/article/details/128811627)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [STM32G030F6P6基于HAL库硬件IIC驱动1.54寸OLED屏幕](https://blog.csdn.net/chanchairen/article/details/124635254)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值