stm32 标准库一些比较容易犯的错误
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或晶振時鐘引腳相關功能,在使用該引腳時,沒有讓對應的引腳進行功能重映射。
大家還有遇到什么常見的錯誤,可以在留言區打出來,看看你都都踩過什么坑!!
總結
以上是生活随笔為你收集整理的stm32 标准库一些比较容易犯的错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用STM32CubeMX,生成STM3
- 下一篇: 关于stm32 hal 库 iic 一直