首页/新闻资讯/正文详情

STM32CubeMX+HAL库快速上手指南

发布时间:2026/11/5 6:44:31 来源:云帆数科 栏目:资讯中心
STM32CubeMX+HAL库快速上手指南
提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档文章目录前言一、ST官方给的文件UM1718)二、HAL库函数速查手册 | 波特律动三、练习STM32F103C8T61.配置2.代码部分总结前言初次接触stm32cubemx发现这个软件能直接生成初始化和之前在学校学的标准库不一样以前标准库还是自己手动配置的工程文件手写的写的.c、.h文件当时我就在想老师要求各个外设初始化的时候需要模块化每个外设初始化配置的东西也差不多完全可以官方配置好我们自己修改参数就行。现在这个软件通过图形化的形式配置时钟设置外设省去很多时间但是我想写一点东西的时候就一点无从下手不知道调用什么函数目前就搜集了一些资料虽然ai现在直接跟它说它几秒钟就写好了但是感觉自己印象不深刻轮到自己敲还是犯难。一、ST官方给的文件UM1718)这部分还是介绍软件生成代码的介绍了几个文件的作用以及命名规则。官方给的串口初始化一般配置外设都是这几个函数注意配置函数和释放函数的区别不要看成一个了。二、HAL库函数速查手册 | 波特律动还是不知道能用哪些函数HAL库函数速查手册 | 波特律动这个网站可以查看也可以直接看下面这里显示的不全GPIOHAL_GPIO_WritePin(端口, 引脚号, 电平状态); // 写引脚电平 HAL_GPIO_ReadPin(端口, 引脚号); // 读引脚电平 HAL_GPIO_TogglePin(端口, 引脚号); // 翻转引脚电平例子// 写引脚 void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState); // 示例PB0输出高 HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); // 读引脚 GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); // 示例读取PB0电平 if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0) GPIO_PIN_RESET){} // 翻转电平 void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);UARTHAL_UART_Transmit(串口句柄, 数据指针, 数据长度, 超时时间); // 串口发送阻塞方式 HAL_UART_Receive(串口句柄, 数据指针, 数据长度, 超时时间); // 串口接收阻塞方式 HAL_UART_Transmit_IT(串口句柄, 数据指针, 数据长度); // 串口发送中断方式 HAL_UART_Receive_IT(串口句柄, 数据指针, 数据长度); // 串口接收中断方式 HAL_UART_Transmit_DMA(串口句柄, 数据指针, 数据长度); // 串口发送DMA方式 HAL_UART_Receive_DMA(串口句柄, 数据指针, 数据长度); // 串口接收DMA方式例子// 阻塞发送huart1是CubeMX自动生成的句柄 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout); // 示例 uint8_t buf[]Test OK\r\n; HAL_UART_Transmit(huart1, buf, sizeof(buf), 100);ADCHAL_ADC_Start(ADC句柄); // 启动ADC转换阻塞方式 HAL_ADC_Stop(ADC句柄); // 停止ADC转换 HAL_ADC_Start_IT(ADC句柄); // 启动ADC转换中断方式 HAL_ADC_Stop_IT(ADC句柄); // 停止ADC转换中断方式 HAL_ADC_Start_DMA(ADC句柄, 数据指针, 长度); // 启动ADC转换DMA方式 HAL_ADC_Stop_DMA(ADC句柄); // 停止ADC转换DMA方式 HAL_ADC_PollForConversion(ADC句柄, 超时时间); // 等待ADC转换完成阻塞轮询 HAL_ADC_GetValue(ADC句柄); // 获取ADC采样值三、练习STM32F103C8T61.配置(1)Debug模式修改一下改成图片上的如果用no debug 会导致只能烧录一次后面烧录会显示stlink连接不成功解决措施就是在STM32 ST-LINK Utility这个软件上擦除已经烧录进去的东西。连接不上在软件里面选择“connect to the target”按住stm32F103C8t6的复位键擦除后记得断开连接不然会占用设备2配置时钟树这里一般选择HSE高速外部震荡器作为时钟源比较稳定。3导出如果是用keil的话选择MDK-ARM我这里配置的是cmake所有的配置搞完选择右上角的GENERATE CODE就可以生成代码了。如果下一次有改动的话也是点一下这个就更新配置了。2.代码部分环境配置vscodestm32cubemxcmake在vscode里面搜索这个会安装配套的扩展包不需要自己手动配置顺带补充一下在vscode的左下角的设置-配置文件-新建配置文件可以将不同的环境区分开来。自定义文件第一在cmake文件下新建文件夹user在user下面新建文件CMakeLists.txt不能直接放在cmake下面那个mx重新生成的时候这些会被覆盖掉;在文件根目录下面新建文件夹创建.c和.h文件按照图片内容在.txt文件下修改变量名注意看清楚左侧选的文件复制cmake-stm32cubemx-camkelists.txt文件红框里面的内容到我们新建的.txt文件我们自己建的文件CMakeLists.txt里面是这样的里面的内容都是前面去复制的。在根目录下面的CMakeList.txt新增框起来的部分这部分在blibli上看的视频没有第一个红框的部分应该是我嵌入的ai编译错误之后给我加的总结提示这里对文章进行总结例如以上就是今天要讲的内容本文仅仅简单介绍了pandas的使用而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

相关推荐

easydiffusion 指南:5 分钟用 Stable Diffusion 生成 AI 图像
easydiffusion 指南:5 分钟用 Stable Diffusion 生成 AI 图像

easydiffusion 指南:5 分钟用 Stable Diffusion 生成 AI 图像 【免费下载链接】easydiffusion An easy 1-click way to create beautiful artwork on your PC using AI, with no tech knowledge. Provides a browser UI for generating images from text prompts an… · 2026/11/5 6:43:31

基于multisim的9路抢答器电路设计
基于multisim的9路抢答器电路设计

内容及要求 1、每次抢答前,主持人首先按下复位键,将抢答器上 “抢答号” 复位,显示为 0;抢答号显示复 0 后,主持人念问题,念毕即叫 “抢答”;参赛者立即 “争先恐后” 地按下自己对应的抢答… · 2026/11/5 6:43:31

XHS-Downloader 完整指南:40 条小红书链接批量下载,5 分钟自动归档
XHS-Downloader 完整指南:40 条小红书链接批量下载,5 分钟自动归档

XHS-Downloader 完整指南:40 条小红书链接批量下载,5 分钟自动归档 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具 项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader XH… · 2026/11/5 6:43:31

ADS122U04与STM32F410RB工业温度采集方案:UART接口ADC实战详解
ADS122U04与STM32F410RB工业温度采集方案:UART接口ADC实战详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 7:35:44

ADS122U04IPWR + PIC18F66K40:PT100/NTC高精度温度采集方案解析
ADS122U04IPWR + PIC18F66K40:PT100/NTC高精度温度采集方案解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 7:35:44

Figma设计稿转LVGL嵌入式UI:自动化链路与工程实践
Figma设计稿转LVGL嵌入式UI:自动化链路与工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 7:35:44

ADS122U04IPWR+PIC18F56K42实现0.1℃工业温度测量
ADS122U04IPWR+PIC18F56K42实现0.1℃工业温度测量

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 7:35:44

工业温度测量信号链设计:ADS122U04与PIC18F57Q43实战
工业温度测量信号链设计:ADS122U04与PIC18F57Q43实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 7:35:44

1km人口分布栅格数据处理:口径、裁剪与时间序列分析
1km人口分布栅格数据处理:口径、裁剪与时间序列分析

去年帮一位做城市扩张研究的朋友处理人口栅格,他拿到一份 2000—2023 年的 1km 精度人口分布栅格数据,第一件事就是把研究区内的像元值全部加总,想直接得到总人口曲线。结果算出来的数比公开统计口径少了将近三成,他一度以为是数据… · 2026/11/5 7:34:44

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码