STM32 单片机串口实验
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
特率寄存器USART_BRR,通过设置该寄存器达到配置 不同波特率的目的。该寄存器的各位描述如下:
《STM32中文参考手册V10》P524 讲解了波特 率和DIV_Mantissa以及 DIV_Fraction的计算公 式:
故BRR设置为0X1D4C即可使得波特率设置为 9600。
4、串口控制。STM32的每个串口都有3个控制寄存器
6、串口使能: 串口使能是通过函数 USART_Cmd()来实现的:
USART_Cmd(USART1, ENABLE);
USART_CR1~3,串口的很多配置都是通过这3个寄存 器来设置的。这里我们只要用到USART_CR1就可以 实现我们的功能了。
5、数据发送与接收。STM32的发送与接收是通过数
据寄存器USART_DR来实现的,这是一个双寄存器, 包含了TDR和RDR。当向该寄存器写数据的时候,串 口就会自动发送,当收到收据的时候,也是存在该寄 存器内。该寄存器的各位描述如下:
如何配置?
串口设置的一般步骤可以总结为如下几个步骤: 1) 串口时钟使能,GPIO 时钟使能 2) 串口复位 3) GPIO 端口模式设置 4) 串口参数初始化 5) 开启中断并且初始化 NVIC(如果需要开启中断才 需要这个步骤) 6) 使能串口 7) 编写中断处理函数
6、串口状态。串口的状态可以通过状态寄存器
USART_SR读取。USART_SR的各位描述如下:
3
具体实例分析
依照以上步骤,在安富莱-V3的板子上以实现串口
通信的实验。
1、 串口时钟使能: 串口是挂载在APB2下面的外设
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1);
1、串口时钟使能。串口作为STM32的一个外设,其
时钟由外设时钟使能寄存器控制,这里我们使用的串 口1是在APB2ENR寄存器的第14位。除了串口1的时钟 使能在APB2ENR寄存器,其他串口的时钟使能位都在 APB1ENR。
RCC_APB2ENR
RCC_APB1ENR
2、串口复位。当外设出现异常的时候可以通过复位寄
2、串口复位: 当外设出现异常的时候可以通过复位设置
void USART_DeInit(USART_TypeDef* USARTx)
对串口1复位方法为:
USART_DeInit(USART1);
3 、串口参数初始化:
串口初始化是通过USART_Init()函数实现的,设置波特率、 停止位、校验位、位长等。
存器里面的对应位设置,实现该外设的复位,然后重 新配置这个外设达到让其重新工作的目的。一般在系 统刚开始配置外设的时候,都会先执行复位该外设的 操作。串口1的复位是通过配置APB2RSTR寄存器的第 14位来实现的。APB2RSTR寄存器的各位描述如下:
3、串口波特率设置。每个串口都有一个自己独立的波
通过该函数向串口寄存器USART_DR写入一个数据。 STM32 USART_DR寄存器读串口接收到的数据的函数是:
uint16_t USART_ReceiveData(USART_TypeDef* USARTx);
通过该函数可以读取串口接受到的数据。
5、串口状态: 读取串口状态的函数是:
FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
STM32串口实验
1 STM32串口介绍
2
串口的配置使用
3
具体实例分析
蔡兴广 2015-3-26
1
STM32串口介绍
串行接口简称串口,也称串行通信接口或串行通讯接
口(通常指COM接口),是采用串行通信方式的扩展 接口。 在STM32的参考手册中,串口被描述成通用同步异步 收发器(USART),它提供了一种灵活的方法与使用工 业标准NRZ异步串行数据格式的外部设备之间进行全 双工数据交换。USART利用分数波特率发生器提供宽 范围的波特率选择。它支持同步单向通信和半双工单 线通信,也支持LIN(局部互联网),智能卡协议和 IrDA(红外数据组织)SIR ENDEC规范,以及调制解 调器(CTS/RTS)操作。它还允许多处理器通信。还可 以使用DMA方式,实现高速数据通信。
2
串口的配置使用
STM32F103ZET6。利用的串口接口为COM1,常
用2,3,5引脚,和电脑间的通信通过USB转串口线 进行通讯。
如何工作?
一般有两种方式:查询和中断。
(1)查询:串口程序不断地循环查询,看看当前有没
有数据要它传送。如果有,就帮助传送。 (2)中断:平时串口只要打开中断即可。如果发现有 一个中断来,则意味着要它帮助传输数据——它就马 上进行数据的传送。
USART通过3个引脚与其他设备连接在一起 RX: 接受数据串行输入。通过过采样技术来区别数据
和噪音,从而恢复数据。 TX: 发送数据输出。当发送器被禁止时,输出引脚恢 复到它的I/O端口配置。当发送器被激活,并且不发 送数据时,TX引脚处处于高电平。在单线和智能卡模 式里,此I/O口被同时用于数据的发送和接收。
void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct);
4 数据发送与接收。
STM32 USART_DR寄存器发送数据的函数是:
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);