一、时钟配置 STM32F103C8T6
Clock Connfiguration
To Cortex System timmer(MHz) ,系统滴答定时器的时钟为72MHz
二、us微秒延时函数
my_sysTick.c
#include "my_sysTick.h"
//nus微秒延时函数
void delay_us(uint16_t nus)
{
//SystemCoreClock
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK_DIV8); //设置SysTick系统滴答定时器8分频, 72/8 = 9MHz
SysTick->LOAD = 9 * nus; //写入计数周期, 72MHz进行8分频后得到9MHz的(SysTick)时钟源频率,因此1us是9个时钟脉冲;
SysTick->VAL = 0x00; //清空VAL计数器, SysTick系统滴答定时器是个递减计数器
SysTick->CTRL = 0x01;