这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » STM32G431之串口详解

共23条 1/3 1 2 3 跳转至

STM32G431之串口详解

工程师
2022-06-19 00:04:10     打赏
1.串口简介

  通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。使用多缓冲器配置的DMA方式,可以实现高速数据通信。

  任何USART双向通信至少需要两个脚:接收数据输入(RX)和发送数据输出(TX)。

  RX:接收数据串行输。通过过采样技术来区别数据和噪音,从而恢复数据。

串口特性:

● 全双工的,异步通信
● NRZ标准格式
● 分数波特率发生器系统
 ─ 发送和接收共用的可编程波特率,最高达4.5Mbits/s
● 可编程数据字长度(8位或9位)
● 可配置的停止位-支持1 或2个停止位

2.硬件接口

  在本开发板中,提供串口接口有两个,一个是普通串口USART1,一个是低功耗串口LPUART1。LPUART1可以通过32.768 kHz驱动,波特率可达9600bps,我们这以普通串口为例。

根据原理图,USART1_TX和PC4相连,USART1_RX和PC5相连。

poYBAGKVYYCAQzo8AANxhmKe1j8171.png#pic_center3.串口配置pYYBAGKVXZGAX15ZAAMcKYwnVUU522.pngpoYBAGKVXaGASG6YAACP6tLi_cM084.pngpYYBAGKVXbSAUq43AAJ2tliqR_k735.png3.代码生成poYBAGKVXeKAegB0AAQOlg8c6V0532.png 3.1 printf重定向实现
int fputc(int c, FILE *stream)
{
 huart1.Instance->TDR=c;
 while( !(huart1.Instance->ISR&1<<7)){}
 return c;
}
3.2 串口中断

STM32G431芯片有读数据寄存器RDR和发送数据寄存器TDR。

读数据寄存器RDR:

pYYBAGKVXtCAa9FBAAGOiBoiyao782.png

发送数据寄存器TDR:

pYYBAGKVXyyAL1GWAAIU_JISlzM202.png

void USART1_IRQHandler(void)
{
 /* USER CODE BEGIN USART1_IRQn 0 */
 uint8_t c;
 /* USER CODE END USART1_IRQn 0 */
 HAL_UART_IRQHandler(&huart1);
 /* USER CODE BEGIN USART1_IRQn 1 */
 c=huart1.Instance->RDR;//接收数据
 huart1.Instance->TDR=c;
 /* USER CODE END USART1_IRQn 1 */
}
3.3 主函数poYBAGKVXjmAdeizAAM7HOXuLOM595.pngpYYBAGKVXluANNCkAAyV5pe_BCI582.pngpYYBAGKVXm-AC4tkAAGqfA9dW3I200.png                                          





专家
2022-06-19 01:33:40     打赏
2楼

感谢楼主的分享,很实用了。


专家
2022-06-19 06:52:44     打赏
3楼

谢谢


高工
2022-06-19 07:03:12     打赏
4楼

谢谢分享


专家
2022-06-19 07:49:52     打赏
5楼

谢谢分享


专家
2022-06-19 07:55:51     打赏
6楼

学习学习


高工
2022-06-19 07:58:38     打赏
7楼

谢谢分享


专家
2022-06-19 09:21:44     打赏
8楼

不错不错


专家
2022-06-19 09:29:55     打赏
9楼

感谢分析


院士
2022-06-19 10:12:10     打赏
10楼

谢谢楼主分享的电路文章~!


共23条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]