stm32---USART&UART基础知识

USART和UART介绍

USART:通用同步和异步收发器        (A是异步,S是同步)
UART:通用异步收发器

如何实现

从板子上的下载器DAP Link引脚上的TXD和RXD连到单片机的PA9和PA10上实现数据的发送和接收

把PA9(RX)复用成串口1(usart_1)的接收,PA10(TX)复用成串口1(usart_1)的发送

USART如何发送和接收数据?(底层)

将内部寄存器USART_TDR里的内容直接给TxFIFO,再用移位寄存器(TX Shift Reg)将FIFO里的内容一个一个发送出去(例如要发送数据1010 则第一秒发送1,第二秒发送0一秒一秒发送数据)

接收同理:将发送的数据一位一位传入移位寄存器(RX Shift Reg)然后传入RxFIFO——>USART_RDR内部寄存器

发送接收流程

粗略版

CPU通过APB总线把数据给USART_TDR,硬件就自动发送了

接收则直接去读数据即可

发送详细版(此操作CUBEMX自动生成配置 , 不用会用只需理解)

1.向CR1的UE位写1使能串口。  UE : USART enable

2.向CR1的M位定义字长。M位有M1和M0

如图所示M位写00为发送八位字长,一个起始位,01为9位,10为7位

3.CR2的停止位数量进行编程。

4.对DMA进行配置。

5.配置BRR寄存器的波特率,波特率为控制数据发送的频率。

6.发送器对TE位置1,发送一个空闲帧(高电平)作为第一次数据发送(告诉外设它开始发数据了)TE:使能发送

7.把要发送的数据写进USART_TDR寄存器,硬件自动发送。TXE(DR数据是否为空标志)清零。

8.在写入最后一个数据字后,等待TC=1,表示最后一个数据帧的传输结束。 4.如果USART_CR1寄存器中的TCIE位被置位,则会产生中断。

接收详细版

1.使能CR1寄存器中的UE位。

2.修改CR1中的M位定义字长。

3.对CR2中的停止位数量进行编程。

4.配置DMA(如果需要)。

5.配置BRR选择波特率。

6.将CR1中的RE位置1.检测如下序列。 检测序列表示开始接收 1110X0X0X0000 因为发送前,先发送空闲帧, 起始位又为低电平,所以, 检测到从1→0的跳变后, 就表示开始接收了。

7.接收到字符,RXNE(接收寄存器不为空) 置1,表示移位寄存器(RX Shift Reg)内容传送到了USART_RDR寄存器。

8.如果RXNEIE置1,产生接收中断。

9软件读取DR寄存器,RXNE自动清零, 或者手动写入0清零。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
STM32的GPIO复用是指将GPIO引脚用作内置外设功能的过程。每个GPIO引脚都可以被复用为不同的内置外设功能引脚。这些内置外设包括UART、SPI、I2C等。在STM32F4系列中,GPIO复用功能可以通过GPIO复用功能高位寄存器(GPIOx_AFRH)和GPIO复用功能低位寄存器(GPIOx_AFRL)来配置。\[1\] GPIO复用功能高位寄存器用于配置引脚的高位复用功能,而GPIO复用功能低位寄存器用于配置引脚的低位复用功能。这些寄存器的偏移地址分别为0x24和0x20。\[2\]\[3\] 通过配置这些寄存器,可以将GPIO引脚复用为所需的内置外设功能,实现不同的功能需求。 #### 引用[.reference_title] - *1* [【STM32STM32F4 GPIO口映射与复用](https://blog.csdn.net/weixin_46324172/article/details/129150250)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【STM32】GPIO功能复用](https://blog.csdn.net/dengjin20104042056/article/details/108143206)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值