systick定时器

systick定时器

文章目录


前言

这边记录systick相关知识点。

一、前期疑惑

在学习systick志气啊,其实对于systick还是一脸懵的。然后自己在想的过程中,就产生了几个疑问,下面表述一下。

1、systick是终内部中断?如果是的话,中断中要干什么,终端中怎么处理的,来实现定时的。

2、systick是怎么实现定时的?

3、systick延时是阻塞的吗?

4、systick用的是哪个时钟。外部还是内部,只能用HSE吗

5、systick真的可以叫定时器吗,是不是systick时钟啊?

6、阻塞延时while是要等一个寄存器置位吗?是囊额寄存器。主要进中断吗?如果要进中断,进中断要做什么。

二、解答

2.1 关于systick是阻塞的吗?

这个问题感觉变得复杂了起来。systick野火教程中是阻塞的。然后jd之前的代码是非阻塞的。但是我已经完全记不清楚jd非阻塞的代码是怎么写的了。好像是使用了if(getSystickCount() - count > 0)类似语句。

可是问题来了,getSystickCount()函数是从哪里获取计数值呢?

2.2 非阻塞

刚才看了下jd的代码,主要是看了下非阻塞的代码。他是在中断中对systickCount++。然后在裸机主循环loop中轮询获取systickCount的值。比如获取systickCount值的函数是getSystickCount()函数。

int startTick = 0;

if(getSystickCount() - startTick > delay_ms)
{
    startTick = getSystickCount();
    
    //控制led操作
    //        
}

三、软件编写

基本实现编码,未做整理。

其中MCO引脚没有输出信号,这边在排查这个问题。同时也没有处理好protues波形的波形时间,所以现在有点停滞。

今天还百度了MCO相关处理方法,这边记录一个帖子:STM32F103 关于 RCC 使用 HSE 和 HSI 配置系统时钟输出和 MCO 输出时钟信号(固件库详解)_stm32f103 时钟输出-CSDN博客


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值