一、如何通过STM32F103RCT6移植为C8T6
1、设置里device芯片型号改为C8T6的相关型号
2、设置里C/C++的宏定义由“USE_STDPERIPH_DRIVER,STM32F10X_HD”改为“USE_STDPERIPH_DRIVER,STM32F10X_MD”
3、去掉工程中的文件startup_stm32f10x_hd.s,重新添加对应的文件startup_stm32f10x_md.s
二、延时函数确认
最简单的是通过LED来确认延时是否正常,延时本质是可以知道自己的各个时钟频率是否正确,如果延时不对,将会影响后续所有外设初始化的时钟,导致其他程序异常。
延时异常可通过下面方法进行排查:
1、delay_init();函数内,配置的CLK源是否正确,即 SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
2、通过RCC_GetClocksFreq();函数可以查看各个时钟的频率,看看是否正确。
3、如果不正确,debug查看SystemInit();是否进入,没进入的话查看md.s汇编文件,看看是否有屏蔽。
4、如果没有被屏蔽,debug查看SetSysClockTo72()函数,查看是否进入“HSEStatus == 0x01”的判断,如果该值为0,则HSE异常,导致倍频有问题,查看原理图和PCB,晶振引脚和焊接是否正常。