PY32F002A单片机使用心得与记录
jlink 器件选择
默认时钟
HSI最高24MHZ,配置到24MHZ 就可以了;
测试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 延时有点误差,其实很多时候都不会有什么影响。
作者:mainbanp