历史上的今天
今天是:2024年12月14日(星期六)
2018年12月14日 | KST-STM32学习之USART
2018-12-14 来源:eefocus
1、STM32F103ZE 单片机内部集成有 3(USART)+2(UART)个串行通信接口。
2、相应的串行通信接口对应的管脚。

3、注意了,USART和UART是不一样的!
USART - 既能实现同步通信,又可以异步通信。
UART - 只能实现异步通信。
4、几个标志位的认识
发送数据寄存器的数据传送到移位寄存器后,发送数据寄存器(TDR)就空了,这个时候硬件会将TXE置位。向TDR中写数据会自动清除TXE
当TXE置位,并且没有数据再写入TDR,这个时候硬件会将发送完成标志位(TC)置位。
同时还可通过TXEIE或者TCIE设置相应的中断使能,从而进入相应的中断服务函数!
注:USART发送功能(TE)置位后,将发送一个空闲帧(0xFF),如果此时没有数据发送,TXE标志位和TC标志位会一直处于置位状态,且如果此时是能了TXEIE或者TCIE,将不断的重复执行串口中断服务函数。
由于 TDR 寄存器一旦为空,TXE 标志位会硬件置位,进而触发中断,所以当不发送数据时要及时关闭发送中断。
5、关于接受数据
相比于发送数据,接受数据似乎更简单了点。
接受完毕后,硬件设置接收数据寄存器非空标志位(RXNE),当去读数据,这个标志位会自动清除,当然也可以手动清除。
6、关于引脚配置
TXD 引脚配置为复用推挽输出模式
RXD 引脚配置为浮空输入模式
7、配置流程总结
使能 USART 时钟及配置相关引脚
注意看对应USART在那个总线上,并且相应引脚应该是什么模式
USART 外设初始化参数设置
波特率,数据位等,使能发送和接收功能,××_Init进行初始化。一旦使能发送功能,便会开始发送空闲帧。
串口中断优先级
使能 USART 中断
注意在此只使能串口接收中断,发送中断必须在发送前使能,发送完毕后关闭,否则程序会重复执行中断服务函数。
使能 USART 外设
编写 USART 中断服务函数
史海拾趣
|
最近在做linux+qte 在arm平台上的界面显示,由于周围 几乎没有做 这块的,qt学习起来相当吃力, 这个是qtopia部分一些精华 要点 分析,看后很受启发… 查看全部问答> |
|
大家好! 断断续续接触CE,今天有遇到一个问题 我用三星原来的BSP自己用PB有生成了一个新的BSP,为什么两个BSP下的LCD驱动中sources这个文件内容不一样呢 (不排除我修改过其他文件,我记不清了),我只是想知道他们为什么不一样了 比如 我自己新生成 ...… 查看全部问答> |
|
正在学习USB的几个实验,其中的DFU遇到了困难。将DFU程序烧写到开发板,然后使用DFUSe Demonstration将STM32F10xUSBLibUSBLibdemosDevice_Firmware_Upgradeimages 中的joystickmouse.dfu去upgrade CPU,重启运行,正常。但问题 ...… 查看全部问答> |




