void OS_CPU_SysTickInit (void)
{
INT32U cnts;
cnts = OS_CPU_SysTickClkFreq() / OS_TICKS_PER_SEC;
OS_CPU_CM3_NVIC_ST_RELOAD = (cnts - 1);
/* Set prio of SysTick handler to min prio. */
OS_CPU_CM3_NVIC_PRIO_ST = OS_CPU_CM3_NVIC_PRIO_MIN;
/* Enable timer. */
OS_CPU_CM3_NVIC_ST_CTRL |= OS_CPU_CM3_NVIC_ST_CTRL_CLK_SRC | OS_CPU_CM3_NVIC_ST_CTRL_ENABLE;
/* Enable timer interrupt. */
OS_CPU_CM3_NVIC_ST_CTRL |= OS_CPU_CM3_NVIC_ST_CTRL_INTEN;
}
收获:在上面的代码的第一句前,必须自行将RCC_CFGR寄存器中的SWS改变成需要的值(在纯软件仿真),不然函数“OS_CPU_SysTickClkFreq()”返回值不对
上图;
没解决:还是进不了systick中断,哈哈哈哈哈~~~~~~~~~不知道为什么SysTick当前数值寄存器的值一直为0;上图
作者: 烂泥桑 时间: 2014-9-8 17:46
回复【4楼】正点原子:
---------------------------------
原子哥,能不能再来指教一下。
作者: 正点原子 时间: 2014-9-8 18:03
回复【12楼】烂泥桑:
---------------------------------
IAR不熟
作者: 烂泥桑 时间: 2014-9-8 20:12
回复【13楼】正点原子:
---------------------------------
我觉得mdk和iar虽然不同,但是都是仿真调试stm32的寄存器,应该相似才对,我再努力一下
作者: wkm5135 时间: 2016-1-8 14:02
我遇到了和楼主一模一样的问题了,显示乱码。。。还没解决呢。。。
作者: 猴子 时间: 前天 14:17
我也遇到了这个问题,系统自带的任务显示是正常的,自己创建的任务就只能通过优先级判断是哪个任务。。。
欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/)
Powered by Discuz! X3.4