这几天在验证自己的功能代码,发现一个比较奇怪的现象,写了一个嘀嗒定时器,在STM32F103C8T6上工作只要定义的时间超出10ms,用示波器测试出来的波形就是乱的不正确,小于10ms都能正常工作,
换了另一款STM32F103ZET6就可以正常工作;在这两个板子上外部工作的晶振也是一样的;我也读取了系统内部时钟,都是72MHZ;请大家帮忙看看什么地方出了问题;start的文件也修改了;
//**************************************************************************************************
//函 数 名:
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
//**************************************************************************************************
//函 数 名: SysTick_int()
//功 能: 配置嘀嗒定时器为us还是ms定时,并且开启中断函数
//入口参数: uint32_t ntime 多长时间进入一次中断
// time_unit Times_unit 时间单位的选择,us还是ms
//返 回 值: 无
//**************************************************************************************************
void SysTick_int(uint32_t ntime, time_unit Times_unit)
{
uint32_t F_number;
RCC_ClocksTypeDef RCC_Clocks; //重新定义一个数据源变量
RCC_GetClocksFreq(&RCC_Clocks); //得到系统的所有时间频率
switch(Times_unit)
{
case us : //时间单位为us级别
F_number=ntime *(RCC_Clocks.HCLK_Frequency /1000000 );
break;
case ms : //时间单位为ms级别
F_number=ntime *(RCC_Clocks.HCLK_Frequency /1000 );
break;
default:
break;
}
SysTick_Config(F_number); //配置嘀嗒定时器,并启动中断;时钟源为HCLK
一周热门 更多>