STM32的坑

  • 格式:docx
  • 大小:15.36 KB
  • 文档页数:2

STM32的坑

一 , TIMx(1-8),在库设置默认的情况下,都是72M的时钟;

二, TIM_TimeBaseStructure.TIM_RepetitionCounter是重复计数,就是重复溢出多少次才给你来一个溢出中断,它对应的寄存器叫TIM1 RCR.如果这个值不配置,上电的时候寄存器值可是随机的,本来1秒中断一次,可能变成N 秒中断一次,让你超级头大!设置TIM_TimeBaseStructure.TIM_RepetitionCounter=0.

三 , STM32F103ZEt6,SPI2和TIM1冲突,不能同时使用,初始化时先初始化 TIM1,再初始化SPI2,SPI2就正常了。

四 , STM32F1系列PB3,PB4,PA13,PA14,PA15用作普通IO口的特殊配置。重映射的方式一共有三种。分别描述如下:

1.GPIO_Remap_SWJ_JTAGDisable: /*!< JTAG-DP Disabled

and SW-DP Enabled */ 即能用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试

2.GPIO_Remap_SWJ_Disable: /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */ 5个引脚全为普通引脚,但不能再用JTAG&SWD仿真器调试,只能用st-link调试

3.GPIO_Remap_SWJ_NoJTRST: /*!< Full SWJ Enabled

(JTAG-DP + SW-DP) but without JTRST */PB4可为普通IO口,JTAG&SWD正常使用,但JTAG没有复位

如果你用到所有的五个引脚当做普通IO口,那么上述步骤二中的重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); 如果你用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试,则重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

同理可配置只用PB4可为普通IO口的情况。

五, 软件复位。直接使用复位命令:NVIC_SystemReset();//系统复位即可,和上电复位一个效果