已解决:大家使用原子哥的延时函数delay_ms,delay_us会出现进入延时函数出不来的情况
首说明先原子哥的延时函数没有问题。原子哥的延时函数有的是用在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会出现进入延时函数出不来的情况相关推荐
- 新遇到的系统编译问题!已解决!
今天做C语言题真的遇到了很多麻烦.先是很慢很慢的做了几道程序设计. 然后在结构体这块又遇到了系统编译错误. 不过经过丰哥和百度的指导,已解决,如果大家有类似问题,可以参考. ------------- ...
- 原子哥的STM32视频,我发现他们都看不懂原子哥里面按键扫描程序
近身边的很多同学都在学习原子哥的STM32视频,我发现他们都看不懂原子哥里面按键扫描程序.由于问的人多,所以我也写了个心得,分享一下,老鸟别喷我哈.先贴上代码吧: //返回值: //0,没有任何按键按 ...
- 已解决:fastclick插件在IOS系统上点击input需要双击或长按才有效
已解决:fastclick插件在Vue移动端IOS系统上点击input需要双击或长按才有效 做Vue项目的登录注册页面测试时发现的问题,Chrome浏览器上使用三星手机Glaxy S5测试input是 ...
- 【已解决】Java “错误:编码GBK 的不可映射字符”
[已解决]Java "错误:编码GBK 的不可映射字符" 正文 import java.awt.*; import java.awt.datatransfer.Clipboard; ...
- conda env create -f environment.yml报错ResolvePackageNotFound和Found conflicts的解决方案【已解决】
阅读须知:长文,将近10万字.主要原因是报了太多错,记录了太多bug. 前面的11步骤是我的试错过程,直到第12/13步才解决.没耐心的可以直接从目录跳到第12步最后. 整篇文章简而言之:笨方法在一些 ...
- npm缺少css-loader,/style-compiler,stylus-loader问题,npm没有权限无法全局更新问题【已解决】
npm缺少css-loader,/style-compiler,stylus-loader问题,npm没有权限无法全局更新问题[已解决] 参考文章: (1)npm缺少css-loader,/style ...
- Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决)
Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决) 参考文章: (1)Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决) (2)https://www.cn ...
- 【已解决】关于SQL2008 “不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了‘阻止保存要求重新创建表的更改’” 解决方案
[已解决]关于SQL2008 "不允许保存更改.您所做的更改要求删除并重新创建以下表.您对无法重新创建的标进行了更改或者启用了'阻止保存要求重新创建表的更改'" 解决方案 参考文章 ...
- 关于div的滚动条滚动到底部,内容显示不全的问题。(已解决)
关于div的滚动条滚动到底部,内容显示不全的问题.(已解决) 参考文章: (1)关于div的滚动条滚动到底部,内容显示不全的问题.(已解决) (2)https://www.cnblogs.com/th ...
最新文章
- 运营商级网络地址转换(LSN/CGN)方案介绍
- 注册HttpSessionListener失效原因
- C9---include,编译
- bzoj 2109 amp; 2535 空中管制 解读
- Debian8 安装wordpress博客
- Think in Java读书笔记--隐藏实施过程
- iec104点号_IEC104报文流程(有常用类型标识解释)
- VC制作类似于IE4的酷工具条
- Android RadioButton,使用Kotlin的RadioGroup
- 浏览器 Cookie 的使用
- ocp 认证 043
- 中庸——粗浅阅读后的感受,在此勉励
- 洛谷 P2762 太空飞行计划问题(自己理解的口胡版)
- Python windows高效截屏
- 国外知名乐队都在用的社交媒体二维码
- 武穴中学2021高考成绩查询,重磅!湖北2019年高考分数线公布!武穴文理科第一名揭榜!附网上填报志愿时间...
- 有没有可以在手机上使用的钢琴键盘模拟器呢
- vue中开发微信公众号中用js关闭当前浏览器页面
- 淘宝又现坑爹极品山寨
- 用计算机键盘方法是,如何使用电脑键盘,从零开始学电脑的方法
热门文章
- web项目_学生证管理系统
- python:装饰器
- Django 生成数据库表时的报错TypeError: __init__() missing 1 required positional argument: 'on_delete'...
- 【Spark篇】---SparkStream初始与应用
- Django安装使用基础
- MATLAB实现最优低通滤波器的函数
- Js弹性漂浮广告代码
- 使用stsadm命令部署和激活webpart解决方案
- Kotlin 性能优化利器 —— Sqeuence 原理浅析
- 解Bug之路-Druid的Bug