面包屑图标 当前位置: 首页
AI资讯
热点详情

STM32MP1 Cortex M4开发第5篇:串行通讯接口

AI热点日报
AI热点日报时间:2026-07-14
热点解读

写在前面: 本文章为《ARM Cortex-M4裸机开发篇》系列中的一篇,全系列总计14篇。笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板),Cortex-M4裸机开发篇除了讲M4裸机开发外,还会讲解通过M4控制资源扩展板上的各种传感器执行器模块(包括空气温湿度传感器、

写在前面:

本文章为《ARM Cortex-M4裸机开发篇》系列中的一篇,全系列总计14篇。笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板),Cortex-M4裸机开发篇除了讲M4裸机开发外,还会讲解通过M4控制资源扩展板上的各种传感器执行器模块(包括空气温湿度传感器、LED灯、数码管、蜂鸣器、震动马达、按键中断、风扇等),本篇是M4控制资源扩展板中的一篇。

资源扩展板是FS-MP1A开发板的扩展模块,主要包含了10余种主流传感器、执行器件、总线控制器件,非常方便项目扩展用。可拓展开发智慧家庭、智能医疗、智能安防、工业控制、图像识别、环境检测等方向的10个左右综合项目,华清远见开发板也将配套提供所有项目的说明文档、实验源码、应用程序等资料。

针对FS-MP1A开发板,除了Cortex-M4裸机开发篇外,还包括其他多系列教程,包括Cortex-A7开发篇、FreeRTOS篇、Linux基础及应用开发篇、Linux系统移植篇、Linux驱动开发篇、硬件设计篇、人工智能机器视觉篇、Qt应用编程篇、Qt综合项目实战篇等。

资源扩展板介绍

硬件介绍&资源扩展板可开发项目

Cortex-M4 串行通讯接口

实验目的

熟悉STM32CubeIDE工具软件的使用。

掌握STM32CubeIDE软件的基本设计流程和设计步骤,能够使用工具进行设计、编程、仿真调试。

学习UART串口的使用方法,掌握如何利用STM32MP157A芯片的串口输入输出。

实验环境

FS-MP1A开发平台

ST-Link仿真器

STM32CubeIDE开发软件

PC机 XP、Window7/10 (32/64bit)

串口调试工具

实验原理

串口,可以说是计算机上最通用的设备通信协议之一,不过要注意别和USB(通用串行总线)搞混了。大多数计算机都带有两个基于RS232的串口,同时它也是仪器仪表设备的标配协议——很多GPIB兼容的设备也配有RS-232口。不仅如此,串口通信协议还能用来获取远程采集设备的数据。

串口通信的原理其实很简单:按位(bit)发送和接收字节。虽然比按字节(byte)的并行通信慢,但它的优势在于可以用一根线发送数据的同时用另一根线接收数据,简单可靠且能实现远距离通信。典型的应用是传输ASCII码字符。通信只需要3根线:地线、发送线、接收线。由于它是异步通信,端口能在一根线上发数据的同时在另一根线上收数据。其他线用于握手,但不是必须的。串口通信最重要的参数有四个:波特率、数据位、停止位和奇偶校验。

对于两个进行通信的端口,这些参数必须匹配。来逐一看看:

波特率: 衡量通信速度的参数,表示每秒钟传送的bit个数。比如300波特就是每秒300个bit。当协议要求4800波特率时,时钟就是4800Hz,意味着数据线的采样率为4800Hz。常见电话线的波特率是14400、28800和36600。波特率可以远高于这些值,但要注意波特率和距离成反比——高波特率通常用于放置很近的仪器之间通信,典型的例子是GPIB设备。

数据位: 实际通信中数据位的个数。标准值有5、7、8位,具体取决于你要传送的信息。比如标准ASCII码是0~127(7位),扩展ASCII码是0~255(8位)。如果传输简单的文本,每个数据包用7位数据就够了。每个“包”指一个字节,包含开始/停止位、数据位和奇偶校验位。

停止位: 表示单个包的最后一位,典型值为1、1.5和2位。这里的1.5位数据宽度就是1.5个波特率。由于每个设备有自己的时钟,通信中可能出现不同步,停止位不只是传输结束的标志,还给计算机提供了校正时钟同步的机会。停止位越多,对时钟同步的容忍度越大,但数据传输率也越慢。

奇偶校验位: 一种简单的检错方式,有四种:偶、奇、高、低,当然也可以不用。对于偶校验和奇校验,串口会在数据位后面设置一个校验位,确保传输的数据有偶数个或奇数个逻辑高位。例如数据是011,偶校验时校验位为0(逻辑高共2个,偶数),奇校验时校验位为1(逻辑高共3个,奇数)。高和低校验只是简单置位逻辑高或低,不真正检查数据。这样接收设备能判断是否有噪声干扰或不同步。

硬件流控制: 常用的有RTS/CTS流控制和DTR/DSR流控制。硬件流控制必须连接相应的电缆线。以RTS/CTS为例,通信两端的RTS、CTS对应相连。数据终端设备(如计算机)用RTS启动调制解调器的数据流,而数据通讯设备(如调制解调器)用CTS来起停计算机的数据流。编程时根据接收端缓冲区大小设置高位标志(如75%)和低位标志(如25%),当缓冲区内数据达到高位时,接收端将CTS置低电平的逻辑0,发送端检测到CTS为低后就停止发送数据,直到缓冲低于低位再将CTS置高电平。RTS则标明接收设备是否准备好接收数据,DTR/DSR的用法类似,这里不再赘述。

STM32串口设置一般遵循以下几个步骤:

  1. 串口时钟使能GPIO时钟使能设置引脚复用映射
  2. GPIO初始化设置, 模式为复用功能
  3. 串口参数初始化:设置波特率,字长,奇偶校验等
  4. 开启中断并初始化NVIC,使能中断(如果需要中断才需此步)
  5. 使能串口
  6. 编写中断处理函数

串口硬件原理图:

HAL库函数解析:

HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);

HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);

这两个函数是轮询方式发送和接收。

HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);

HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);

这两个函数是以中断方式发送和接收,具体传参详见工程。注意:这两个函数里指定了缓冲区和大小并开启中断,实际上数据还在中断里处理。HAL库提供了用户中断处理函数方式,通过调用回调函数来实现:接收中断在用户代码里重定义 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart),发送中断重定义 void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)

实验步骤

打开STM32CubeIDE → File → New → STM32 Project

在左侧搜索框内输入芯片型号STM32MP157A进行搜索,选择对应芯片,点击Next。

填写工程名,点击Finish。

点击Yes打开配置页面。

配置UART4,勾选Cortex-M4,Mode选择Asynchronous,NVIC Settings 勾选Enabled使能串口中断,搜索框搜索PB2、PG11,分别配置为UART4_RX、UART4_TX。

在Code Generator处选择为每个外设生成单独的C和H文件,这样设置方便阅读代码。

完成以上设置后,按下Ctrl+S保存,会提示是否需要生成代码,选择Yes即可自动生成代码。系统会自动生成System Clock代码。

在左侧工程文件夹找到UART_CM4子工程,打开main.c。

添加串口中断回调函数HAL_UART_RxCpltCallback:

12345 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){ HAL_UART_Transmit(&huart4, Buff, 5, 100);}

在主函数中调用串口中断接收函数:HAL_UART_Receive_IT(&huart4, Buff, 5);

上述为新建工程配置过程,可参考12.3.2章节进行导入已有工程,工程存放路径【华清远见-FS-MP1A开发资料 2-程序源码ARM体系结构与接口技术Cortex-M44_UART】。

配置完成或导入工程后进行程序下载,具体步骤参考12.3.3节进行开发板连接,程序编译、下载。

实验现象

连接串口线,打开串口调试助手,选择串口号,波特率115200,打开串口。发送5个字符,可以看到成功接收到发送的字符。

硬件平台:华清远见FS-MP1A开发板(STM32MP157)

热点追踪提示词
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:STM32MP1 Cortex M4开发第5篇:串行通讯接口要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
来源:https://m.elecfans.com/article/2120218.html
Cortex

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关热点
AI热点2026-07-14 17:20
AI时代数据新可能:从模板到指标服务

从传统数据服务迈向AI时代的指标服务转型,看起来是自然演进的趋势,但真正落地实施时,所遇到的挑战却不少。今天分享的这套思路,核心目标在于解决一个长期存在的难题:当数据产品与大语言模型相遇,过去那种“一个需求开发一个服务”的模式,还能否支撑得住?答案显然是否定的。因此,我们设计了一套全新的范式——指标

AI热点2026-07-14 17:19
乾鸿微电子加入深圳市人工智能产业协会

2023年3月8日,乾鸿微电子正式加入深圳市人工智能产业协会,成为会员单位。总经理胡波获颁会员牌匾及集成电路产业专家证。乾鸿微将借助协会平台,以模拟芯片产品服务会员,推动人工智能与集成电路产业融合发展。

AI热点2026-07-14 17:19
ARS系统助力PCB企业实现智能化升级成为新选择

PCB,即印制线路板,是电子工业中不可或缺的基石。它之所以能被广泛应用,得益于高密度化、高可靠性与高设计性这三大核心优势。而要确保这些特性真正落地,生产过程必须实现标准化、规模化与自动化,从而保障每一块电路板都具备稳定一致的品质。 然而,进入后道工序后,挑战就随之而来。目前生产线普遍采用AOI A

AI热点2026-07-14 17:19
昂视PiqsX新品试用,开启全新智能化体验

近年来,智能制造领域持续高速发展,智能检测装备的需求也随之显著增长。作为先进制造的核心装备,智能检测设备不仅是“工业六基”的重要组成部分,更是实现产业基础高级化的关键环节。昂视最新推出的PiqsX视觉检测软件,专为解决最复杂的视觉检测难题而设计——为稳定生产、质量保障、效率提升及服役安全提供可靠支撑

延伸阅读