[应用相关] STM32编程前注意事项和一些常识

[复制链接]
1045|27
观海 发表于 2025-9-9 21:59 | 显示全部楼层 |阅读模式
段(section):描述映像文件的代码和数据块。
RO : Read-Only的缩写,包括RO-data(只读数据)和RO-code(代码)。
RW : Read-Write的缩写,主要是RW-data,RW-data由程序初始化初始值。
ZI: Zero-initialized的缩写,主要是ZI-data,由编译器初始化为0。
.text : 与RO-code同义。
.constdata : 与RO-data同义。
.bss :与ZI-data同义。
.data:与RW-data同义

bsp_Init(); 硬件初始化
Printf**()打印例程名称和版本信息
PrintfHelp()打印操作提示

注释格式尽量统一,建议使用“/* …… */”,因为 C++注释“//”并不被所有 C 编译器支持。

变量作用域的前缀
为了清晰的标识变量的作用域,减少发生命名冲突,应该在变量类型前缀之前再加上表示变量作用域的前缀,并在变量类型前缀和变量作用域前缀之间用下划线‘-’隔开。
具体的规则如下:
(1)对于全局变量(global variable),在其名称前加“g”和变量类型符号前缀。
uint32_t g_ulParaWord;
uint8_t g_ucByte;
(2)对于静态变量(static variable),在其名称前加“s”和变量类型符号前缀。
static uint32_t s_ulParaWord;
static uint8_t s_ucByte;

如果项目内有使用printf打印中文字符串,则AC6编译过程会弹出警告信息,虽然不影响使用,但是十分烦人。可以填入 -Wno-invalid-source-encoding 将该警告信息屏蔽。

1374768bfa63e0c183.png

TAB缩进设置为4字节 在Edit-configuration选项下设置

6458168bfa6387ed0e.png

鼠标双击再CTRL+R整个工程查找
CTRL+E 跳转到另一个括号
CTRL+H替换
CTRL+l 剪切数据
CTRL+F2 添加标签,当编辑很多文件时,方便查找位置,按F2查找
ALT+鼠标左键 选择列的数据 可以多个列同时加数据
SHIFT+ALT批量编辑

Configuration -User Keywords-C/C++ Editor files-User Keywords 编辑关键字颜色
对于一些常见类型的变量,应在起名字前标注表示其类型的前缀。

5209268bfa62fca0bc.png

————————————————
版权声明:本文为CSDN博主「-黑起-」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/c781918946/article/details/125383974

1988020566 发表于 2025-9-21 12:53 | 显示全部楼层
使用ST-Link等调试工具进行代码调试,可以帮助快速定位问题。
cashrwood 发表于 2025-9-21 14:36 | 显示全部楼层
选对MCU与开发板,设计稳定电源,合理分配引脚。
geraldbetty 发表于 2025-9-21 15:32 | 显示全部楼层
熟悉STM32CubeMX的配置方法和STM32CubeIDE的调试功能。
houjiakai 发表于 2025-9-21 18:08 | 显示全部楼层
不要依赖外设的默认配置,显式初始化所有使用的外设。
mollylawrence 发表于 2025-9-21 18:24 | 显示全部楼层
STM32编程前注意事项和一些常识
uytyu 发表于 2025-9-21 19:17 | 显示全部楼层
配置正确的IDE与库版本,避免寄存器与库函数混用。
belindagraham 发表于 2025-9-21 19:45 | 显示全部楼层
关闭未使用的外设时钟,以降低功耗。
loutin 发表于 2025-9-21 22:18 | 显示全部楼层
合理分配RAM和Flash资源,避免不必要的全局变量和大型数据结构。
sanfuzi 发表于 2025-9-21 22:38 | 显示全部楼层
HAL库提供了高层的API,简化了外设的使用。
sdlls 发表于 2025-9-22 13:24 | 显示全部楼层
硬件是STM32开发的基础,需重点关注​​MCU选型、开发板选择、电源设计、引脚分配​​四大核心问题。
sesefadou 发表于 2025-9-22 13:44 | 显示全部楼层
注意引脚复用功能              
modesty3jonah 发表于 2025-9-22 14:13 | 显示全部楼层
ST官方集成开发环境,基于Eclipse,内置STM32CubeMX配置工具,支持HAL/LL库、RTOS(FreeRTOS),自动生成初始化代码,适合新手。
tabmone 发表于 2025-9-22 15:38 | 显示全部楼层
使用模块化编程,将功能划分为独立模块,便于维护和扩展。
ingramward 发表于 2025-9-22 16:35 | 显示全部楼层
STM32的时钟系统比较复杂,需要根据具体需求配置系统时钟、外设时钟等。
eefas 发表于 2025-9-22 16:56 | 显示全部楼层
将代码分为硬件抽象层、驱动层和应用层,便于移植。
rosemoore 发表于 2025-9-22 18:42 | 显示全部楼层
优先使用库函数              
sheflynn 发表于 2025-9-22 19:18 | 显示全部楼层
STM32CubeIDE:官方集成环境,支持HAL库和LL库,适合快速开发。
Keil MDK:行业老牌工具,调试功能强大,但商业版需付费。
IAR Embedded Workbench:优化代码效率高,适合资源敏感型应用。
lzbf 发表于 2025-9-22 19:57 | 显示全部楼层
遵循C语言编程规范,注意内存管理,避免野指针和内存泄漏。
updownq 发表于 2025-9-22 20:39 | 显示全部楼层
调试是嵌入式开发的核心环节,掌握以下技巧能大幅提升效率。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

147

主题

4359

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部