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();//系统复位即可,和上电复位一个效果