你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32C071RB实现串口收发功能

[复制链接]
雨打梧桐十八蕉 发布时间:2025-5-28 21:01

STM32C071RB实现串口收发功能

1、软件安装

这里提供两种软件集成方式:

l 首先是STM32CubeMX与MDK

STM32CubeMX是 STMicroelectronics 提供的免费图形化配置工具,用于快速初始化 STM32 微控制器的硬件外设(如GPIO、UART、ADC等),生成底层驱动代码(基于HAL/LL库),并支持中间件(如FreeRTOS、USB协议栈)的集成。

STM32CubeMX - STM32Cube initialization code generator - STMicroelectronics(官网下载)

image.png

但CubeMX只是一个图形化界面, 用于生成初始化代码(基于HAL/LL库),它本身** 不是编译器 所以我们需要搭配一个 **Keil MDK-ARM** 官方下载地址 [https://www.keil.com/download/product/**](https://www.keil.com/download/product/)

CubeMX 生成 .uvprojx 工程文件 → 用 Keil 打开并编译。

依赖关系:

需提前安装 Keil MDK 和 STM32 设备支持包(DFP)。

CubeMX 检测到 Keil 安装路径后,会自动关联。

l 其次就是STM32CubeIDE

我使用的就是IDE。IDE与MX是一家的,IDE包含了MX也弥补了MX的编译烧录功能。(其他功能就不详细讲了)

STM32CubeIDE - Integrated Development Environment for STM32 - STMicroelectronics

image.png

它支持多种系统,我下载的是Windows的最新版。官方提供了许多资料,也有IDE的使用手册STM32CubeIDE - Integrated Development Environment for STM32 - STMicroelectronics

image.png

当然你也可以在软件里找资料,也有各种视频(纯英文)

image.png

软件安装好了,记得不要忘了安装一下驱动

image.png

NUCLEO-C071RB - STM32 Nucleo-64 development board with STM32C071RB MCU, supports Arduino and ST morpho connectivity - STMicroelectronics

2、软件配置

image.png

下一步

image.png

点击next

image.png

image.png

image.png

接下来手动配置的是LED的引脚(我配置的是PA6、PA7、PA8,除了这三个其他都是系统自动配置)

点击相应的引脚选择GPIO_Output

image.png

右键相应引脚添加标签

无需修改代码 :只需在CubeMX中重新映射标签,生成的代码会自动更新引脚定义。

减少错误风险 :避免手动修改代码时遗漏引脚。

image.png

image.png

设置完成后,点一下这个齿轮图标

image.pngimage.png

我们可以在mian.h文件中看到PA6、PA7、PA8这三个引脚的配置

image.png

Main.c文件展示

image.png

image.png

image.png

Main函数展示

int main (void )

{

/ USER CODE BEGIN 1 /

/ USER CODE END 1 /

/ MCU Configuration--------------------------------------------------------/

/ Reset of all peripherals, Initializes the Flash interface and the Systick. /

HAL_Init();/ 初始化HAL库,重置所有外设,初始化Flash接口和SysTick定时器 /

/ USER CODE BEGIN Init /

/ USER CODE END Init /

/ Configure the system clock /

SystemClock_Config(); / 配置系统时钟(通常由CubeMX自动生成) /

/ USER CODE BEGIN SysInit /

/ USER CODE END SysInit /

/ Initialize all configured peripherals /

/ 初始化所有配置的外设(由CubeMX自动生成) /

MX_GPIO_Init(); // 初始化GPIO

MX_USART1_UART_Init(); // 初始化USART1串口

uint8_t receiveData[2]; // 用于存储接收到的2字节数据

/ USER CODE BEGIN 2 /

/ 用户外设初始化后代码可以放在这里 /

/ USER CODE END 2 /

/ Infinite loop /

/ USER CODE BEGIN WHILE /

while (1)

{

HAL_UART_Receive(&huart1, receiveData, 2, HAL_MAX_DELAY);

// 从USART1接收2字节数据(阻塞式,无限等待)

HAL_UART_Transmit(&huart1, receiveData, 2, 100);

// 将接收到的2字节数据原样发送回去(超时100ms)

GPIO_PinState state = (receiveData[1] == '1') ? GPIO_PIN_SET : GPIO_PIN_RESET ;

// 解析第二字节:'1'表示高电平,其他表示低电平

// 根据首字符控制不同LED

switch (receiveData[0]) {

case 'R':// 红色控制(实际连接蓝色LED)

HAL_GPIO_WritePin(LED_BLUE_GPIO_Port, LED_BLUE_Pin, state);

break ;

case 'G': // 绿色控制(实际连接黄色LED)

HAL_GPIO_WritePin(LED_YELLOW_GPIO_Port, LED_YELLOW_Pin, state); // 修正引脚名

break ;

case 'B': // 蓝色控制(实际连接绿色LED)

HAL_GPIO_WritePin(LED_GREEN_GPIO_Port, LED_GREEN_Pin, state);

break ;

}

/ USER CODE END WHILE /

/ USER CODE BEGIN 3 /

}

/ USER CODE END 3 /

}

image.png

最后的视频中LED的颜色没有按照代码中的引脚来弄的

STM32C071RB实现串口收发_哔哩哔哩_bilibili

在硬件连接时一定要看好手册

image.png

image.png

image.png

image.png
image.png
收藏 评论0 发布时间:2025-5-28 21:01

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版