stm32 标准库一些比较容易犯的错误

本文总结了STM32开发过程中常见的调试错误,包括忘记给模块时钟、误用RCC_AHBPeriphResetCmd代替RCC_AHBPeriphClockCmd、未配置引脚复用功能等问题,并提供了具体的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,忘记给开模块时钟,特别是GPIO  AF 等功能,结果调试了半天,发现某个功能模块功能不正常,不过这个错误很好发现,在DEBUG模式下,查看一下对应模块的寄存器是否被赋值,如果左边情况多半是模块时钟没打开!


RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOC | RCC_AHBPeriph_GPIOD , ENABLE);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3 | RCC_APB1Periph_TIM3, ENABLE);


2,RCC_AHBPeriphClockCmd  用成 RCC_AHBPeriphResetCmd ,一般犯了这种错时程序员还以为自己开启了时钟模块,但是模块确不能正常工作,这种情况也可以在上面仿真调试的方法发现对应的模块寄存值没有被修改,从而定位问题。

// 并没有开启模块时钟

RCC_AHBPeriphResetCmd( RCC_AHBPeriph_GPIOC , ENABLE);


3,使用引脚复用功能时,没有配置引脚功能。常见为,缺少 GPIO_PinAFConfig 或GPIO_PinRemapConfig 指定,

如:

GPIO_PinAFConfig(GPIOC, GPIO_PinSource10, GPIO_AF_6);

GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_6);

GPIO_PinAFConfig(GPIOC, GPIO_PinSource12, GPIO_AF_6);

5,在使用 GPIO_PinAFConfig() 接口时,将第二个参数 GPIO_PinSourcex  用成 GPIO_Pin_x 出现这种错误,需要很细心才能发现,往往需要单步调试定位。

6,使用的一些引脚,其默认功是是JTAG或晶振时钟引脚相关功能,在使用该引脚时,没有让对应的引脚进行功能重映射。


大家还有遇到什么常见的错误,可以在留言区打出来,看看你都都踩过什么坑!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值