资讯详情

STM32:快速入门USART串口

📅 2026/10/18 7:29:53 | 华诺云谱 👁 阅读
STM32:快速入门USART串口
一、大致理解1是一个片上外设2通用同步、异步收发器S同步、A异步3由两根数据线和地线以及一根时钟线组成数据线Tx发数据线Rx收数据线、地线GND、时钟线RCCUART没有时钟线4全双工通信5串行通信61对1通信7)采用帧格式1起始位5-8位数据位10-1位校验位停止位1、理解半双工、单工、全双工半双工可选择收或者发但是只能单向发送单工只能二选一选择其一后就不能再改变了。全双工收发可以同时进行。2、理解串行和并行串行一个单位一个单位的发收数据。并行利用多条数据线实现同一时间内多单位数据收发。注意串行 ! UART串口3、理解一对一、一对多通行一对一一个串口单元只能对一个串口单元通信一对多一个串口单元可以对多个串口单元通信4、理解帧格式帧格式就是一种通信协议它规定了两个串口都必须使用这套语言。类比记忆就相当于两个人交流如果两个人使用的是不同国家的语言就会导致听不懂话里的信息帧格式就是强制他们用同一国语言这样就可以正常交流1 个起始位线路从高电平拉低通知接收方一帧开始。5~8 个数据位实际载荷通常低位先行。LSB低位数据权位MSB高位数据权位0 或 1 个校验位可选用于简单的单比特错误检测奇校验或偶校验。1 或 2 个停止位拉高线路标示帧结束给接收方缓冲时间。空闲时线路保持高电平。这种格式没有地址概念只适合点对点通信。5、理解波特率和比特率比特率每秒传递的比特个数bit/s)波特率每秒传递信息的种数(Bd比如01、11、00、10表达四种信息假设如果每秒传递一种信息01那么它的比特率为2bit/s波特率为1Bd二、USART串口片上外设总结构图1需要注意的部分除了上图其他都是我们往MCU写入对应的程序让他自己完成的。三、看看MCU内存映射USART的具体位置注释只是截取了属于这方面的USART内存范围作为拼凑并原本就是这样。1视角集中到USART1这就是USART1内存中所映射的寄存器了。I.USART_DR寄存器收(RDR)发(TDR)寄存器所在的位置我们所说的收发寄存器就位于偏移量为004h那个位置USART1它用一个寄存器表示收RDR、发(TDR)寄存器这些尽管意法半导体没有纰注这时如何做到的。如何实现传输的HAL库中专门有一个函数专门朝这个寄存器进行写入数据。HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size, uint32_t Timeout); HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, uint32_t Timeout);参数含义husartUSART 句柄指针包含外设实例及配置信息。pTxData/pRxData指向发送或接收数据缓冲区的指针。再代码阶段自己创建Size要发送或接收的数据元素个数注意不是字节数取决于字长配置。Timeout超时时间单位通常为毫秒防止阻塞卡死。状态寄存器USART_SR:来表述DR寄存器当前状态来返回给用户的一个寄存器。该注意什么对于初学者来说现在只用注意这两个就可以了借助TXE标志实现阻塞式发送因为MCU读取USART的方式是先SR再DR所以就会在写入数据之前读取TXE,这时如果TXE 0那就说明此时DR寄存器属于有数据阶段MCU就不会执行朝DR中编辑数据操作这就会造成阻塞状态。四、CH340K(USB接口和UART TTL接口的翻译官)五、使用CubeMx配置USART(1)、打开CUbeMx软件(2)、创建新文件3搜索对应的板子基于自己买的单片机板子类型而定4完成前置工作这一步我简单解释一下将SYS(系统核心)调试配置采用SW使用外部高速时钟源5、配置USART:USART1使用异步通信。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑