stm32 标准库一些比较容易犯的错误
1,忘記給開模塊時(shí)鐘,特別是GPIO? AF 等功能,結(jié)果調(diào)試了半天,發(fā)現(xiàn)某個(gè)功能模塊功能不正常,不過這個(gè)錯(cuò)誤很好發(fā)現(xiàn),在DEBUG模式下,查看一下對(duì)應(yīng)模塊的寄存器是否被賦值,如果左邊情況多半是模塊時(shí)鐘沒打開!
RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOC | RCC_AHBPeriph_GPIOD , ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3 | RCC_APB1Periph_TIM3, ENABLE);
2,RCC_AHBPeriphClockCmd? 用成 RCC_AHBPeriphResetCmd ,一般犯了這種錯(cuò)時(shí)程序員還以為自己開啟了時(shí)鐘模塊,但是模塊確不能正常工作,這種情況也可以在上面仿真調(diào)試的方法發(fā)現(xiàn)對(duì)應(yīng)的模塊寄存值沒有被修改,從而定位問題。
// 并沒有開啟模塊時(shí)鐘
RCC_AHBPeriphResetCmd( RCC_AHBPeriph_GPIOC , ENABLE);
3,使用引腳復(fù)用功能時(shí),沒有配置引腳功能。常見為,缺少?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() 接口時(shí),將第二個(gè)參數(shù)?GPIO_PinSourcex? 用成?GPIO_Pin_x 出現(xiàn)這種錯(cuò)誤,需要很細(xì)心才能發(fā)現(xiàn),往往需要單步調(diào)試定位。
6,使用的一些引腳,其默認(rèn)功是是JTAG或晶振時(shí)鐘引腳相關(guān)功能,在使用該引腳時(shí),沒有讓對(duì)應(yīng)的引腳進(jìn)行功能重映射。
大家還有遇到什么常見的錯(cuò)誤,可以在留言區(qū)打出來,看看你都都踩過什么坑!!
總結(jié)
以上是生活随笔為你收集整理的stm32 标准库一些比较容易犯的错误的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用STM32CubeMX,生成STM3
- 下一篇: 关于stm32 hal 库 iic 一直