先说结论,这个型号,运算速度 慢!!!!!!!!!
测试1
volatile uint32_t delay = 1000;/* 初始化所有外设,Flash接口,SysTick */HAL_Init();HAL_Delay(1); APP_LED_Init(); /* LED初始化 */
// bHalInit();
// HAL_SYSTICK_Config(SystemCoreClock / (1000000U) ); /* SYSTICK 延时 1us HAL_Delay 参数由1ms 改为1us*/while (1){
// HAL_Delay(250); /* 延时250ms */
// bHalDelayMs(250);while(delay--);delay = 1000;HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1); /* LED翻转 */}
上述代码运行在内部高速时钟8MHz
#if !defined (HSI_VALUE) #define HSI_VALUE ((uint32_t)8000000) /*!< Value of the Internal oscillator in Hz */
#endif /* HSI_VALUE */
uint32_t SystemCoreClock = HSI_VALUE;
运行时间1.5ms!!!!!!!!!!!!!!!!!!!!!!
大概可以等效成,一条汇编指令的运行时间约是1.5us,这也太慢了!!!!!
问题来了
不使用外部晶振,难道我就无法实现1us的延时吗!!!
现在的解决方案是1us 延时有点误差,其实很多时候都不会有什么影响。