历史上的今天
今天是:2024年12月17日(星期二)
2018年12月17日 | STM32串口寄存器库函数配置方法
2018-12-17 来源:eefocus
1、参考资料
《STM32F1开发指南-库函数版本》- 5.3 usart串口文件夹介绍
-第9章 串口实验
《STM32中文参考手册V10》-第25章通用同步异步收发器(USART)
2、串口通信基本原理
·常用的串口相关寄存器
·USART_SR状态寄存器
·USART_DR数据寄存器
·USART_BRR波特率寄存器
·串口操作相关寄存器(省略入口参数):
void USART_Init(); //串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能
void USART_Cmd();//使能串口
void USART_ITConfig();//使能相关中断
void USART_SendData();//发送数据到串口,DR
uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据
FlagStatus USART_GetFlagStatus();//获取状态标志位
void USART_ClearFlag();//清除状态标志位
ITStatus USART_GetITStatus();//获取中断状态标志位
void USART_ClearITPendingBit();//清除中断状态标志位
·状态寄存器(USART_SR)

FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
·数据寄存器(USART_DR)
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);
uint16_t USART_ReceiveData(USART_TypeDef* USARTx);
·波特率寄存器(USART_BRR)
void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct);
·波特率计算方法
·硬件连接
PA9、PA10(串口1)连接到了USB串口电路
3.串口配置的一般步骤
①串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();
②串口复位:USART_DeInit(); 这一步不是必须的
③GPIO端口模式设置:GPIO_Init(); 模式设置为GPIO_Mode_AF_PP
④串口参数初始化:USART_Init();
⑤开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)
NVIC_Init();
USART_ITConfig();
⑥使能串口:USART_Cmd();
⑦编写中断处理函数:USARTx_IRQHandler();
⑧串口数据收发:
void USART_SendData();//发送数据到串口,DR
uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据
⑨串口传输状态获取:
FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 04:10 编辑 1.考虑了寄生参数的运算放大器电路 一个典型的运算放大器电路如图1(a)所示,考虑了PCB焊盘、通孔和导线、以及元器件分布参数的运算放大器电路如图1(b)所示。 (a)典型的运算 ...… 查看全部问答> |
|
其他应对移动和振动[1]问题的解决方案包括: •除去振动源或者与振动源间在机械上解耦。电机、水泵和其他机电装置都是常见的振动源[2]。 •稳定整个测试环境。保证电子元器件、导线和电缆的稳固安装或者捆绑固定。屏蔽[3]应该保证稳 ...… 查看全部问答> |
|
建议获奖者包括其它未获奖者和未如期完成作品的参赛者继续改进自己的作品,这不仅仅是动手实践提高自己技术能力的一次机会,好的DIY作品本身也是一件实用的装置,善于利用的话,也许还能成为一块不错的“敲门砖”,特别是对于还是学生的参赛者,同 ...… 查看全部问答> |
|
我仿真的时候没有问题可以,把程序下到板子里问题就出来了,为什么我把触发方式设置成边沿触发,把程序下到板子里就先执行了一次中断服务程序,而我在Protues仿真的时候就是好的,我有点郁闷了。怀疑是不是硬件的原因。板子放了很久,复位按钮更奇 ...… 查看全部问答> |




