| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 正点原子stm32第25~27节知识总结 -> 正文阅读 |
|
[嵌入式]正点原子stm32第25~27节知识总结 |
串口通信原理 通信方式:1.并行通信:数据各个位同时传输 ? ? ? ? ? ? ? ? ? 2.串行通信:数据按位顺序传输,又分为单工,半双工,全双工。通信方式又分为同步通信和异步通信(是否带时钟同步信号) ?stm32的串口通信接口:UART通用异步收发器,-RXD数据输入引脚,-TXD数据发送引脚发送和接受需要共用可编程波特率,单独的发送器和接受器使能位。USART通用同步收发器。 stm32串口异步通信需要定义的参数:1.起始位2.数据位(8或9)3.奇偶校验位(9)4.停止位(1,15,2位) ???????? ?如图所示,接收位移寄存器和发送位移寄存器与各自数据寄存器相连接,同时与各自的控制相连来控制发送器时钟和接收器时钟,其控制信号(电流大小必须是n/16)来控制波特率。其中SR是各种标志位,CR1前半部分为异步中断控制(可以用于开启不同的中断),后半部分为其使能位。 stm32串口寄存器库函数配置 常用寄存器:
l
USART_SR
状态寄存器
l
USART_DR
数据寄存器
l
USART_BRR
波特率寄存器
寄存器相关位参考《stm32中文参考手册》
波特率计算方法:
?串口常用库函数: void USART_Init(); //串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能 void USART_Cmd();//使能串口 void USART_ITConfig();//使能相关中断 串口初始化函数 void USART_SendData();//发送数据到串口,DR uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据 DR寄存器 FlagStatus USART_GetFlagStatus();//获取状态标志位 void USART_ClearFlag();//清除状态标志位 ITStatus USART_GetITStatus();//获取中断状态标志位 void USART_ClearITPendingBit();//清除中断状态标志位 SR寄存器 串口配置步骤:
①
串口时钟使能,
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); 代码展示
? ? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 17:45:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |