STM32F4串口通信
STM32F4串口通信
串口通信简介:串口通信,是指外设和计算机之间,通过数据信号线、地线等,按位进行传输数据的一种通信方式,属于串行通信方式。串口是一种接口标准,它规定了接口的电气标准,没有规定接口插件电缆和使用的协议。
串口数据收发线要交叉连接,计算机的TXD要对应单片机的RXD,计算机的RXD对单片机的TXD,共GND。
通信协议:RS232的通信协议通常遵循96-N-8-1格式
USART简介:
USART即通用同步异步收发器,它能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准NRZ 异步串行数据格式的要求。
UART即通用异步收发器,它是在USART基础上裁剪掉了同步通信功能,同步和异步主要看其时钟是否需要对外提供。
串口通信配置步骤:
(1)使能串口时钟及GPIO端口时钟。
(2)设置GPIO引脚复用器映射
GPIO_PinAFConfig(GPIOx,GPIO_PinSourcex,GPIO_AF_USARTx); //GPIOx复用为USARTx
(3)设置GPIO端口配置,设置对应引脚、模式、速度、有无上下拉等。
(4)初始化串口参数,包含波特率,字长,停止位,校验位,模式,有无硬件流控制等。
//USART1 初始化设置
USART_InitStructure.USART_BaudRate = bound;//波特率设置
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式
USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位
USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式
USART_Init(USART1, &USART_InitStructure); //初始化串口1
(5)使能串口 USART_Cmd(USART1, ENABLE); //使能串口1
(6)设置串口中断类型并使能
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启接收中断
(7)设置串口中断优先级
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//串口1中断通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;//抢占优先级3
NVIC_InitStructure.NVIC_IRQChannelSubPriority =3; //子优先级3
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器
(8)编写串口中断服务函数
void USART1_IRQHandler(void) //串口1中断服务程序
{
u8 r;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断
{
r =USART_ReceiveData(USART1);//(USART1->DR); //读取接收到的数据
USART_SendData(USART1,r);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC) != SET);//判断是否发送完成
}
USART_ClearFlag(USART1,USART_FLAG_TC); //清空发送标志位
}
STM32F4串口通信相关推荐
- 电脑与树莓派与stm32f4串口通信
电脑与树莓派与stm32串口通信 stm32设置 树莓派代码 stm32设置 // 核心代码,不能运行 void M1_PID(float top); void upmada(void); typed ...
- STM32F4应用-串口通信
STM32F4应用-串口通信 1. 基本介绍 1.1 简介 1.2 串口协议 1.3 通信过程 2.配置过程 2.1 引脚复用 2.2 配置步骤 2.3 例子 参考文献 1. 基本介绍 1.1 简介 ...
- 串口通信操作STM32f4单片机LED 蜂鸣器(io)
串口通信操作STM32f4单片机LED 蜂鸣器(io) 首先将串口与PC通信 单片机中串口1需要连接p6 中的PA9连接rxd PA10连接txd并使能相应io,io模式为挽推复用,复用为串口USAR ...
- STM32F4 422串口通信
STM32F429 422串口通信 422串口的硬件原理图如下: 422串口和232串口不同的是引脚的电平控制,还有DE是发送使能,置高即可:RE是接收使能,置低即可.422接出来的是4根线,有RS4 ...
- 【STM32】串口通信编程
00. 目录 文章目录 00. 目录 01. STM32F4串口简介 02. 硬件设计 03. 串口设置步骤 04. 程序示例一 05. 程序示例二 06. 附录 07. 声明 01. STM32F4 ...
- STM32串口通信学习总结
STM32串口通信学习总结 1.概述 1.1学习目的 ...
- 【STM32串口通信】
STM32串口通信 学习计划 一.串口通信知识点 二.硬件部分 1.所需硬件 2.部分硬件连接 三.阻塞式 0.串口阻塞式发送和接收概念 1.STM32CUBEMX配置 2.编写阻塞式串口发送与接收代 ...
- USART串口通信实验
整理自:正点原子PPT 文章目录 串口简介 串口通信基本原理 常用串口相关寄存器 串口操作相关函数 硬件连接 串口配置一般步骤 例程参考 升级版 串口简介 详情见STM32F4开发指南 串口通信基本原 ...
- stm32f4串口接收与发送
之前有写一篇stm32f1串口接收与发送的文章,stm32f4与f1只有配置上的一点不同,今天把f4的串口接收与发送代码分享一下 详细解释推荐大家看f1那篇,都是一样的, stm32f1串口发送与接收 ...
最新文章
- nginx中的event模块
- 大家都说 Java 反射效率低,你知道原因在哪里么
- 当你女朋友向你索吻的时候。。
- leetcode18. 四数之和(双指针)
- [设计模式]State模式
- linux redis可视化工具,几款开源的图形化Redis客户端管理软件
- 糟糕的C语言睡眠排序算法
- Leetcode--438. 找到字符串中所有字母异位词
- 302状态码_HTTP协议详解(基础概念 方法 状态码 首部 连接 Cookie 新特性 安全)
- Java技术学习心得
- 你说,Redis如何实现键值自动清理?
- HPE 发布严重的 RCE 0day 漏洞,影响服务器管理软件 SIM,无补丁
- 解决从PDF复制出来的文字总是换行的小技巧
- ERP项目基础概念整理
- JAVA POI Excel导出,数据源可以是ListMap或者ListModel类型
- win10无法启动_常见的电脑故障分析:win10系统无法启动,造成的原因及解决教程...
- 使用easypoi操作excel
- Python 学习入门(0)—— 简明教程
- python随身笔记
- 视频号如何做出美食爆款视频,美食类爆款技巧