历史上的今天
今天是:2025年01月13日(星期一)
2020年01月13日 | STM32-systick系统定时器
2020-01-13 来源:eefocus
systick系统定时器
系统定时器存在内核中,是24位的定时器,只能向下递减,嵌套在NVIC中

counter 在时钟的驱动下 在reload的初值开始向下递减计时到0,产生中断置位标志然后又从reload值开始重新递减计数,循环定时时间计算
t=reload*(1/clk)
clk=72M时,t=72*(1/72m)=1us
clk=72M时,t=72000*(1/72m)=1ms
clk=72M时,t=72000000*(1/72m)=1s
1s=1000MS =1000 000US=1000 000 000NS
sysTick属于内核中的外设,他的中断优先级和外设的中断优先级相比,哪个高?
sysTick中断优先级配置的是scb->shprx寄存器
而外设的中断配置的是NVIC->iprx,有优先级分组和抢占优先级和子优先级的说法。
中断优先级在内核外设同样适用。
systick的使能函数:
static __INLINE uint32_t SysTick_Config(uint32_t ticks)
{
//判断tick的值是否大于2^24,如果大于,不符合规则
if (ticks > SysTick_LOAD_RELOAD_Msk) return (1);
//初始化reload寄存器的值
SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1;
//配置中断优先级,配置为15,默认为最低优先级
NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);
//初始化counter的值为0
SysTick->VAL = 0;
//配置systick的时钟为72M
//使能中断
//使能systick
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
SysTick_CTRL_TICKINT_Msk |
SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
return (0); /* Function successful */
}
编写微秒延时函数
void SysTick_Delay_us(uint32_t us)
{
uint32_t i;
SysTick_Config(72);
for(i=0;i //当计数器的值时间到了后,CTRL寄存器位16会置1 while(!((SysTick->CTRL)&(1<<16))); } SysTick->CTRL &=~SysTick_CTRL_ENABLE_Msk; } 利用中断来进行延时 void SysTick_Init(void) { if(SysTick_Config(SystemCoreClock/100000)) while(1); } void Delay_ms(__IO u32 nTime) { uint32_t TimingDelay; TimingDelay = nTime; while(TimingDelay!=0) TimingDelay--; }
史海拾趣
|
时代在进步,一切的事物也跟著e化,记得以前当学生时,上学时搭公车都要准备一大堆零钱,现在都改成公车储值卡,每天坐火车都要买火车票,现在火车也推出磁卡,捷运更是一开始就直接采用磁卡,没有票就无法进站,也不会有人逃票,现在连公司上班打卡也都改成 ...… 查看全部问答> |
|
分数给完了,事后一定加分.LCD能显示Logo图片, 之后什么也不显示了, 我估计可能是FrameBuffer配置错了, 如何解决. 掌微的A3 CPU, wince5.0, EBoot能正常运行,NK也已运行(Logo图片以文件的形式包含在NK.Bin中), LCD能显示Logo图片, 之后什么也不显示了, 我估计可能是FrameBuffer配置错了. 请问如何检查下 WinCE 代码里面对LCD控制器有没有错误的配置? 如何检 ...… 查看全部问答> |
|
在进行ADC转换时,进行四个通道的转换,发现读取数据时第一次采样读数变了第二位,第二个数据变成第三位,第三位数据变成第四位,第四位数据变成了第一位。那么奇怪的?不知哪里出现了问题。我想的是需要的时候才进行ADC转换。 int main(voi ...… 查看全部问答> |
|
我刚毕业没多久,希望未来是从事平台、底层软件、BSP等方面工作。 1.嵌入式软件如何分层? 芯片厂商做哪部分?平台开发做哪部分?应用开发又做哪部分? 怎么样区分才能做到通用性? 2.如何做好API? 3.开发前期,考虑换以 ...… 查看全部问答> |




