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串口通信相关推荐

  1. 电脑与树莓派与stm32f4串口通信

    电脑与树莓派与stm32串口通信 stm32设置 树莓派代码 stm32设置 // 核心代码,不能运行 void M1_PID(float top); void upmada(void); typed ...

  2. STM32F4应用-串口通信

    STM32F4应用-串口通信 1. 基本介绍 1.1 简介 1.2 串口协议 1.3 通信过程 2.配置过程 2.1 引脚复用 2.2 配置步骤 2.3 例子 参考文献 1. 基本介绍 1.1 简介 ...

  3. 串口通信操作STM32f4单片机LED 蜂鸣器(io)

    串口通信操作STM32f4单片机LED 蜂鸣器(io) 首先将串口与PC通信 单片机中串口1需要连接p6 中的PA9连接rxd PA10连接txd并使能相应io,io模式为挽推复用,复用为串口USAR ...

  4. STM32F4 422串口通信

    STM32F429 422串口通信 422串口的硬件原理图如下: 422串口和232串口不同的是引脚的电平控制,还有DE是发送使能,置高即可:RE是接收使能,置低即可.422接出来的是4根线,有RS4 ...

  5. 【STM32】串口通信编程

    00. 目录 文章目录 00. 目录 01. STM32F4串口简介 02. 硬件设计 03. 串口设置步骤 04. 程序示例一 05. 程序示例二 06. 附录 07. 声明 01. STM32F4 ...

  6. STM32串口通信学习总结

                                                                             STM32串口通信学习总结 1.概述 1.1学习目的 ...

  7. 【STM32串口通信】

    STM32串口通信 学习计划 一.串口通信知识点 二.硬件部分 1.所需硬件 2.部分硬件连接 三.阻塞式 0.串口阻塞式发送和接收概念 1.STM32CUBEMX配置 2.编写阻塞式串口发送与接收代 ...

  8. USART串口通信实验

    整理自:正点原子PPT 文章目录 串口简介 串口通信基本原理 常用串口相关寄存器 串口操作相关函数 硬件连接 串口配置一般步骤 例程参考 升级版 串口简介 详情见STM32F4开发指南 串口通信基本原 ...

  9. stm32f4串口接收与发送

    之前有写一篇stm32f1串口接收与发送的文章,stm32f4与f1只有配置上的一点不同,今天把f4的串口接收与发送代码分享一下 详细解释推荐大家看f1那篇,都是一样的, stm32f1串口发送与接收 ...

最新文章

  1. nginx中的event模块
  2. 大家都说 Java 反射效率低,你知道原因在哪里么
  3. 当你女朋友向你索吻的时候。。
  4. leetcode18. 四数之和(双指针)
  5. [设计模式]State模式
  6. linux redis可视化工具,几款开源的图形化Redis客户端管理软件
  7. 糟糕的C语言睡眠排序算法
  8. Leetcode--438. 找到字符串中所有字母异位词
  9. 302状态码_HTTP协议详解(基础概念 方法 状态码 首部 连接 Cookie 新特性 安全)
  10. Java技术学习心得
  11. 你说,Redis如何实现键值自动清理?
  12. HPE 发布严重的 RCE 0day 漏洞,影响服务器管理软件 SIM,无补丁
  13. 解决从PDF复制出来的文字总是换行的小技巧
  14. ERP项目基础概念整理
  15. JAVA POI Excel导出,数据源可以是ListMap或者ListModel类型
  16. win10无法启动_常见的电脑故障分析:win10系统无法启动,造成的原因及解决教程...
  17. 使用easypoi操作excel
  18. Python 学习入门(0)—— 简明教程
  19. python随身笔记
  20. 视频号如何做出美食爆款视频,美食类爆款技巧

热门文章

  1. 支付宝、微信(pc+h5)支付
  2. 从六度分隔到无尺度网络
  3. 关于选项卡的切换——JS实现
  4. linux 看usb 存储设备,找到哪个驱动器对应于Linux中的哪个USB大容量存储设备
  5. 哪种物联网卡套餐最划算?
  6. 苞米豆mybatis-plus generator代码生成器3.5.1版本 Freemarker引擎
  7. 1096:数字统计(C C++)
  8. UE4 通过按键切换不同的HUD
  9. 如何设置vs窗口的属性管理器和解决方案管理器的位置
  10. 数据结构与算法笔记:计算思维之人鬼渡河问题