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

物联沃分享整理
物联沃-IOTWORD物联网 » PY32F002A单片机使用心得与记录

发表回复