问一个小问题 关于fac_us=SystemCoreClock/8000000; 怎么是1US呢 72MHZ的八分频是9MHZ即SysTick即为9MHZ  那再除8M也不能是1us啊 ?下面的函数不是说明 fac_us ==1us吗?

void delay_us(u32 nus)

{

u32 temp;

SysTick->LOAD=nus*fac_us; //时间加载

SysTick->VAL=0x00;        //清空计数器

SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;          //开始倒数

do

{

temp=SysTick->CTRL;

}

while(temp&0x01&&!(temp&(1<<16)));//等待时间到达

SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;       //关闭计数器

SysTick->VAL =0X00;       //清空计数器

}


答:1us的意思是1us systick需要计的数。systick的时钟是SystemCoreClock的1/8。那么1us systick需要计的数不就是(SystemCoreClock/8)/10000000=SystemCoreClock/80000000了

SYSCLK即SystemCoreClock
HCLK即SYSCLK分频得来(在此未分频),即HCLK==SystemCoreClock
SysTick时钟是HCLK8分频,即SysTick时钟频率==HCLK/8==SystemCoreClock/8,
因此,SysTick一个计数时长(1/(SystemCoreClock/8)),
1us需要计数次数为10^-6÷[1/(SystemCoreClock/8)]=SystemCoreClock/8000000

SysTick时钟是sysclk 8分频,即SysTick时钟频率=sysclk/8, systick 计1次数所需时间为8/sysclk(s)=8*10^6/sysclk(us),由此,
SysTick  1微秒计数个数为fac_us=sysclk/8*10^6.
举个例子:当sysclk=8M时,systick 计1次数所需时间为1us,由此,fac_us=1,寄存器加载个数SysTick->LOAD=nus*1;
当sysclk=72M时,systick 计1次数所需时间为1/9us,由此,fac_us=9,寄存器加载个数SysTick->LOAD=nus*9;

链接:原子论坛

为什么 fac_us=SystemCoreClock/8000000?相关推荐

  1. STM32-SysTick定时器

    1 SysTick定时器简介 什么是SysTick?                 SysTick定时器也叫SysTick滴答定时器,它是Cortex-M3内核的一个外设,被嵌入在NVIC 中,用于 ...

  2. stm32F10x 看程序知识点记录

    1.RCC_APB2Periph_AFIO :需要用到外设的重映射功能时才需要使能AFIO的时钟即引脚复用时. 2.RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIO ...

  3. 【stm32】delay详解

    1 首先看函数: 1.1 当使用ucos时才有以下部分: 主要实现宏定义与基本函数定义. #if SYSTEM_SUPPORT_OS //如果SYSTEM_SUPPORT_OS定义了,说明要支持OS了 ...

  4. 【单片机】STM32 最小板 学习笔记

    目录&索引 前言 第一章 前期工作准备 软件获取 STM32 资料 相关下载 硬件准备 第二章 单片机系统介绍 第三章 库函数工程模板建立 第一步,下载固件库,文件分类 第二步,打开 mdk5 ...

  5. c语言float气压,STM32+MS5611测气压温度例程详解,测试无误

    DELAY #include "delay.h" static u8 fac_us=0;//us延时倍乘数 static u16 fac_ms=0;//ms延时倍乘数,在ucos下 ...

  6. 嵌入式 LED 万年历

    嵌入式作业 20130080476 孙飞 软件工程 1班 2016-1-7 目录 一作业介绍:... 1 1.1主控单元和按键部分设计... 3 1.2部分引脚设计... 3 二项目实现:... 4 ...

  7. STM32F0系列创建基础工程模板+按键点灯

    前几天实验室搬家的时候在垃圾堆里翻出了一块黑色的小板子 我一看,咦!有LED.有按键.有复位开关.还有晶振,虽然平常玩的都是四四方方的F1系列的芯片,这种长方形的芯片还是第一次见过,上面的英文也不是很 ...

  8. Stm32-SysTick详解

    写在最前 ​ 本文是个人学习Stm32时所做笔记,没有写过C51,但学校学过 微机原理 ,但没学好,实验套件是正点原子Stm32zet6精英板,参考资料为正点原子所提供,本文所涉及代码均使用固件库.本 ...

  9. 基于I2C硬件协议的AHT20温湿度传感器的数据采集

    基于I2C的温湿度采集 硬件I2C和软件I2C 温湿度采集 任务要求 硬件连接 添加代码 最终效果 硬件I2C和软件I2C 硬件I2C对应芯片上的baiI2C外设,有相应I2C驱动电路,其所使用的I2 ...

  10. 基于I2C硬件协议的AH20温湿度传感器的数据采集

    目录 I2C 温湿度传感器数据采集 实验准备 实验步骤: 实验结果: I2C I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实 ...

最新文章

  1. 基于功能特征的间隔线路图形设计技术的研究
  2. Design Pattern - State(C#)
  3. php yaml扩展,php的扩展 - yaml
  4. ANSI C中的sizeof详解
  5. 特征提取 notes
  6. 销售收入科目确定VKOA
  7. 小白学数据分析-----什么是DAU_II [玩家粘性分析模型]为什么游戏粘性会达到60%...
  8. android获取屏幕的分辨率方法
  9. 使用DOM4J解析XML时非法字符Exception
  10. 如何使用Restic Backup Client将数据备份到对象存储服务
  11. 程序员该如何选择工作以及如何做好职业规划?
  12. 文件的长度,跟FileReader读到的长度,不一样
  13. java-php-python-ssm幼儿园管理系统计算机毕业设计
  14. ubuntu添加桌面快捷方式图标
  15. 2021CCPC东北四省赛 K. City 并查集
  16. java判断某个日期是当年内第几周
  17. 超酷的HTML5 Canvas网络画板教程
  18. C语言编程>第十六周 ⑦ s是全部由小写字母字符和空格字符组成的字符串,由len传入字符串的长度,请补充fun函数,该函数的功能是:统计字符串s中的单词数,结果由变量len传回。
  19. 一名网络工程师尴尬的现状?
  20. wpf的path画三角形、四边形

热门文章

  1. java与seo_seo和java哪个更好!
  2. iPhone手机绑定163邮箱解决方案
  3. Mac 技巧|忘记了开机密码的解决办法
  4. 解二元一次方程组的c语言编程,我有一个C语言解二元一次方程组的程序需要解释说明...
  5. 支付宝报错 未设置签名参数
  6. 每日工作问题记录总结(好习惯 打卡2/?)
  7. java 面向对象三个特征_[Java] 面向对象的三个特征与含义
  8. redis-trib.rb 下载
  9. zookeeper和ZAB协议
  10. iphone个系列尺寸_iphone各机型尺寸