首说明先原子哥的延时函数没有问题。原子哥的延时函数有的是用在STM32F103中的,要看自己的开发板是那个类型。这里给出STM32F103和STM32F030的延时函数。

(1)用在STM32F030中:

#include "stm32f0xx.h"
#include "delay.h"
//
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//Mini STM32开发板
//使用SysTick的普通计数模式对延迟进行管理
//包括delay_us,delay_ms
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//修改日期:2010/5/27
//版本:V1.2
//版权所有,盗版必究。
//Copyright(C) 正点原子 2009-2019
//All rights reserved
//********************************************************************************
//V1.2修改说明
//修正了中断中调用出现死循环的错误
//防止延时不准确,采用do while结构!
//
static u8  fac_us=0;//us延时倍乘数
static u16 fac_ms=0;//ms延时倍乘数
//初始化延迟函数
//SYSTICK的时钟固定为HCLK时钟的1/8
//SYSCLK:系统时钟
void delay_init(u8 SYSCLK)
{SysTick->CTRL&=0xfffffffb;//bit2清空,选择外部时钟  HCLK/8fac_us=SYSCLK/8;         fac_ms=(u16)fac_us*1000;
}
//延时nms
//注意nms的范围
//SysTick->LOAD为24位寄存器,所以,最大延时为:
//nms<=0xffffff*8*1000/SYSCLK
//SYSCLK单位为Hz,nms单位为ms
//对72M条件下,nms<=1864
void delay_ms(u16 nms)
{                 u32 temp;        SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit)SysTick->VAL =0x00;           //清空计数器SysTick->CTRL=0x01 ;          //开始倒数  do{temp=SysTick->CTRL;}while(temp&0x01&&!(temp&(1<<16)));//等待时间到达   SysTick->CTRL=0x00;       //关闭计数器SysTick->VAL =0X00;       //清空计数器
}
//延时nus
//nus为要延时的us数.
void delay_us(u32 nus)
{       u32 temp;            SysTick->LOAD=nus*fac_us; //时间加载            SysTick->VAL=0x00;        //清空计数器SysTick->CTRL=0x01 ;      //开始倒数   do{temp=SysTick->CTRL;}while(temp&0x01&&!(temp&(1<<16)));//等待时间到达   SysTick->CTRL=0x00;       //关闭计数器SysTick->VAL =0X00;       //清空计数器
}

(2)用在STM32F103中:

已解决:大家使用原子哥的延时函数delay_ms,delay_us会出现进入延时函数出不来的情况相关推荐

  1. 新遇到的系统编译问题!已解决!

    今天做C语言题真的遇到了很多麻烦.先是很慢很慢的做了几道程序设计. 然后在结构体这块又遇到了系统编译错误. 不过经过丰哥和百度的指导,已解决,如果大家有类似问题,可以参考. ------------- ...

  2. 原子哥的STM32视频,我发现他们都看不懂原子哥里面按键扫描程序

    近身边的很多同学都在学习原子哥的STM32视频,我发现他们都看不懂原子哥里面按键扫描程序.由于问的人多,所以我也写了个心得,分享一下,老鸟别喷我哈.先贴上代码吧: //返回值: //0,没有任何按键按 ...

  3. 已解决:fastclick插件在IOS系统上点击input需要双击或长按才有效

    已解决:fastclick插件在Vue移动端IOS系统上点击input需要双击或长按才有效 做Vue项目的登录注册页面测试时发现的问题,Chrome浏览器上使用三星手机Glaxy S5测试input是 ...

  4. 【已解决】Java “错误:编码GBK 的不可映射字符”

    [已解决]Java "错误:编码GBK 的不可映射字符" 正文 import java.awt.*; import java.awt.datatransfer.Clipboard; ...

  5. conda env create -f environment.yml报错ResolvePackageNotFound和Found conflicts的解决方案【已解决】

    阅读须知:长文,将近10万字.主要原因是报了太多错,记录了太多bug. 前面的11步骤是我的试错过程,直到第12/13步才解决.没耐心的可以直接从目录跳到第12步最后. 整篇文章简而言之:笨方法在一些 ...

  6. npm缺少css-loader,/style-compiler,stylus-loader问题,npm没有权限无法全局更新问题【已解决】

    npm缺少css-loader,/style-compiler,stylus-loader问题,npm没有权限无法全局更新问题[已解决] 参考文章: (1)npm缺少css-loader,/style ...

  7. Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决)

    Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决) 参考文章: (1)Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决) (2)https://www.cn ...

  8. 【已解决】关于SQL2008 “不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了‘阻止保存要求重新创建表的更改’” 解决方案

    [已解决]关于SQL2008 "不允许保存更改.您所做的更改要求删除并重新创建以下表.您对无法重新创建的标进行了更改或者启用了'阻止保存要求重新创建表的更改'" 解决方案 参考文章 ...

  9. 关于div的滚动条滚动到底部,内容显示不全的问题。(已解决)

    关于div的滚动条滚动到底部,内容显示不全的问题.(已解决) 参考文章: (1)关于div的滚动条滚动到底部,内容显示不全的问题.(已解决) (2)https://www.cnblogs.com/th ...

最新文章

  1. 运营商级网络地址转换(LSN/CGN)方案介绍
  2. 注册HttpSessionListener失效原因
  3. C9---include,编译
  4. bzoj 2109 amp; 2535 空中管制 解读
  5. Debian8 安装wordpress博客
  6. Think in Java读书笔记--隐藏实施过程
  7. iec104点号_IEC104报文流程(有常用类型标识解释)
  8. VC制作类似于IE4的酷工具条
  9. Android RadioButton,使用Kotlin的RadioGroup
  10. 浏览器 Cookie 的使用
  11. ocp 认证 043
  12. 中庸——粗浅阅读后的感受,在此勉励
  13. 洛谷 P2762 太空飞行计划问题(自己理解的口胡版)
  14. Python windows高效截屏
  15. 国外知名乐队都在用的社交媒体二维码
  16. 武穴中学2021高考成绩查询,重磅!湖北2019年高考分数线公布!武穴文理科第一名揭榜!附网上填报志愿时间...
  17. 有没有可以在手机上使用的钢琴键盘模拟器呢
  18. vue中开发微信公众号中用js关闭当前浏览器页面
  19. 淘宝又现坑爹极品山寨
  20. 用计算机键盘方法是,如何使用电脑键盘,从零开始学电脑的方法

热门文章

  1. web项目_学生证管理系统
  2. python:装饰器
  3. Django 生成数据库表时的报错TypeError: __init__() missing 1 required positional argument: 'on_delete'...
  4. 【Spark篇】---SparkStream初始与应用
  5. Django安装使用基础
  6. MATLAB实现最优低通滤波器的函数
  7. Js弹性漂浮广告代码
  8. 使用stsadm命令部署和激活webpart解决方案
  9. Kotlin 性能优化利器 —— Sqeuence 原理浅析
  10. 解Bug之路-Druid的Bug