当前位置: 首页 > 编程日记 > 正文

stm32 cubemx hal 工程中 微秒延迟 delay_us

参考的正点原子的代码

测试平台

stm32f429i-disco

配了一个gpio

时钟

gpio


/*
USER CODE BEGIN 0 */ typedef uint8_t u8; typedef uint32_t u32;u8 fac_us;void delay_init(u8 SYSCLK) {#if SYSTEM_SUPPORT_OS //?????? OS.u32 reload;#endifHAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);//SysTick ??? HCLKfac_us=SYSCLK; //?????? OS,fac_us ?????#if SYSTEM_SUPPORT_OS //?????? OS.reload=SYSCLK; //???????? ??? Kreload*=1000000/delay_ostickspersec; //?? delay_ostickspersec ??????//reload ? 24 ????,???:16777216,? 180M ?,?? 0.745s ??fac_ms=1000/delay_ostickspersec; //?? OS ?????????SysTick->CTRL|=SysTick_CTRL_TICKINT_Msk;//?? SYSTICK ??SysTick->LOAD=reload; //? 1/OS_TICKS_PER_SEC ?????SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk; //?? SYSTICK#else#endif }void delay_us(u32 nus) {u32 ticks;u32 told,tnow,tcnt=0;u32 reload=SysTick->LOAD; //LOAD ??ticks=nus*fac_us; //??????told=SysTick->VAL; //?????????while(1){tnow=SysTick->VAL;if(tnow!=told){if(tnow<told)tcnt+=told-tnow;//???? SYSTICK ??????????.else tcnt+=reload-tnow+told;told=tnow;if(tcnt>=ticks)break; //????/????????,???. }}; } /* USER CODE END 0 */
int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration----------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* Configure the system clock */SystemClock_Config();/* Initialize all configured peripherals */MX_GPIO_Init();/* USER CODE BEGIN 2 */delay_init(168);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE */HAL_GPIO_WritePin(GPIOF, GPIO_PIN_7, GPIO_PIN_SET);delay_us(50);HAL_GPIO_WritePin(GPIOF, GPIO_PIN_7, GPIO_PIN_RESET);delay_us(50);/* USER CODE BEGIN 3 */}/* USER CODE END 3 */}

实际测试, 函数调用能带来几百ns的误差.

转载于:https://www.cnblogs.com/zhaitao85/p/5736049.html

相关文章:

ps制作20种特效文字_ps技巧:给照片制作特效(刀光剑影)

哈喽大家好&#xff0c;一段时间没有更新了非常抱歉。现在努力日更&#xff0c;给大家提供干货学习。今天我们的ps课程是制作特效。大家会觉得很难&#xff0c;但是并不是这样的。大家跟着小编的教程走&#xff0c;反复练习就很快学会啦。接下来我们就开始进入今天的学习吧&…

如何创建一个最小的区块链

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 这是我在一个外文网站上看到的一篇博文,作者通过50行代码写出了区块链的简化版本.麻雀虽小,但是五脏俱全.我觉得通过实践,这是了解区块链的一个好…

Linux 服务器上快速配置阿里巴巴 OPSX NTP服务

编辑文件 "/etc/ntp.conf"&#xff0c;根据情况修改文件内容为&#xff1a; 互联网上的服务器:driftfile /var/lib/ntp/drift pidfile /var/run/ntpd.pid logfile /var/log/ntp.log restrict default kod nomodify notrap nopeer noquery restrict -6 default …

python爬取学校新闻_python-爬取校园新闻首页的新闻

1.作业代码 importrequestsfrom bs4 importBeautifulSoupfrom datetime importdatetime##1.用requests库和BeautifulSoup库&#xff0c;爬取校园新闻首页新闻的标题、链接、正文。# urlhttp://news.gzcc.cn/html/xiaoyuanxinwen/resrequests.get(url) res.encodingutf-8soupBea…

windows环境下,mysql的root密码丢失后重置方法

1、运行窗口输入 services.msc&#xff0c;检查mysql服务是否启动&#xff0c;如果启动手动停止或输入 net stop mysql 停止msyql服务。 2、打开cmd命令行&#xff0c;使用cd命令进入mysql 的bin目录 cd E:\TP\wamp\wamp\bin\mysql\mysql5.7.11\bin&#xff08;此处是本地mysq…

区块链以及区块链技术总结

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 摘要&#xff1a;区块链是目前一个比较热门的新概念&#xff0c;蕴含了技术与金融两层概念。从技术角度来看&#xff0c;这是一个牺牲一致性效率且…

UOJ#7. 【NOI2014】购票 | 线段树 凸包优化DP

题目链接 UOJ #7 题解 首先这一定是DP&#xff01;可以写出&#xff1a;\[f[i] \min_{ancestor\ j} \{f[j] (d[j] - d[i]) * p[i] q[i]\}\] 其中\(d[i]\)表示树上\(i\)的深度。 整理一下式子&#xff1a;\[f[i] \min_{ancestor\ j} \{f[j] - d[j] * p[i]\} d[i] * p[i] q…

python中集合的元素可以是任意数据类型_Python之基本数据类型——集合数据类型...

集合set(可变的数据类型)&#xff1a; 数据结构以大括号{}表示&#xff0c;各元素逗号隔开&#xff0c;例&#xff1a;{1,2,3,4}。 集合特征&#xff1a;无序&#xff0c;元素不重复 创建集合&#xff1a; s{1,2,3} pirnt(s) #---------------{1,2,3} sset(hello) print(s) #--…

uv_timer_t的释放问题

项目中的计时器模块是用libuv做的&#xff0c;今天发现了点问题&#xff0c;是释放uv_timer_t引起了&#xff0c;我是在uv_timer_start的回调里释放该结构的&#xff0c;这里是不能释放了&#xff0c;因为回调完后&#xff0c;库还会使用uv_timer_t里的数据&#xff0c;之前没出…

区块链分支循环

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 分支循环 程序的流程控制结构一共有三种&#xff1a;顺序结构&#xff0c;选择结构&#xff0c;循环结构。 一、条件语句 1.1 If语句 语法格式…

c和python区别_C语言和python的区别

Python可以说是目前最火的语言之一了&#xff0c;人工智能的兴起让Python一夜之间变得家喻户晓&#xff0c;Python号称目前最最简单易学的语言&#xff0c;现在有不少高校开始将Python作为大一新生的入门语言。本萌新也刚开始接触Python&#xff0c;发现Python与其他语言确实有…

(1)访问控制 (2)final关键字 (3)对象创建的过程 (4)多态

1.访问控制(笔试题)1.1 常用的访问控制符 public - 公有的 protected - 保护的 啥也不写 - 默认的 private - 私有的 1.2 访问控制符的比较 访问控制符 访问权限 本类 本包中的类 子类 其他包的类---------------------------------------------------------------------------…

MySQL安装ODBC驱动出现126错误

需求&#xff1a;MySQL导入ODBC文件&#xff0c;需要安装ODBC驱动。 问题&#xff1a;本机的MySQL是5.0版本&#xff0c;刚开始下载的是5.3ODBC&#xff0c;然后出现以下错误&#xff1a; 解决方法&#xff1a;ODBC版本应该与MySQL版本一致&#xff0c;重新安装5.0版本的ODBC即…

超级账本的由来

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 1.1.1 超级账本的由来 当你拿起这本书开始阅读的时候&#xff0c;说明你对区块链技术已经有了相关的了解&#xff0c;而且想通过自己的努力或团队合…

你为什么应该经常访问招聘网站?招聘网站至少有4个方面的价值!

一、缘起读大学的时候&#xff0c;有时候会感到很迷茫&#xff0c;不知道毕业之后可以做什么&#xff0c;自己能拿到多少的月薪。于是&#xff0c;就想到去参加一些公司的招聘。大二大三的时候&#xff0c;就去武大参加了武汉中地数码等3个公司的笔试。但是&#xff0c;没有交答…

python去重复行_python去除文件中重复的行实例

python去除文件中重复的行&#xff0c;我们可以设置一个一个空list&#xff0c;res_list&#xff0c;用来加入没有出现过的字符行&#xff01; 如果出现在res_list&#xff0c;我们就认为该行句子已经重复了&#xff0c;可以再加入到记录重复句子的list中。 如下代码&#xff1…

限制TensorFlow只在CPU上运行的方法

笔记本是NVIDIA GeForce 940M的显卡&#xff0c;只有2G的显存&#xff0c;运行TensorFlow代码时候常出现OOM(Out of Memory)的错误&#xff0c;原因是batch_size设置得太大导致显存不足。如果想让代码仅仅运行在CPU下&#xff0c;可在原代码中加入如下代码&#xff1a; import …

比特币挖矿——区块链技术

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 说明 区块链具有数据运行公开、不可篡改、可溯源、跨国际、去中心化的特点。因此越来越多地被应用在各个领域。区块链主要技术包括&#xff1a;分布…

Python黑帽编程2.4 流程控制

Python黑帽编程2.4 流程控制 本节要介绍的是Python编程中和流程控制有关的关键字和相关内容。 2.4.1 if …..else 先上一段代码&#xff1a; #!/usr/bin/python # -*- coding: UTF-8 -*- xint(input(请输入一个整数:)) if x0: print %d 0 % x elif x<0: print %d <0 % x…

【Flask】视图高级

# 视图高级笔记&#xff1a;### add_url_rule(rule,endpointNone,view_funcNone)这个方法用来添加url与视图函数的映射。如果没有填写endpoint&#xff0c;那么默认会使用view_func的名字作为endpoint。以后在使用url_for的时候&#xff0c;就要看在映射的时候有没有传递endpoi…

振动力学基础与matlab应用_【日文好书推荐】振动与噪声控制技术for机械设计者...

声海译读活动日文小组为大家推荐好书&#xff0c;《振动与噪声控制技术for机械设计者》作者&#xff1a;小林英男&#xff0c;欢迎大家围观讨论提出宝贵意见&#xff01;目录译文(一)译者&#xff1a;穆瑞林-天津科技大学前言第一章 机械设计开发•设计者对振动•噪声技术入门所…

区块链是互联网未来十年中举足轻重的技术

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链是互联网未来十年中举足轻重的技术 区块链&#xff08;Blockchain&#xff09;&#xff0c;或者说分布式账本&#xff08;DLT, Distributed …

利用jdt快速实现pmd的功能

jdt可以做语法树分析&#xff0c;并且支持visitor模式对代码进行分析。跟pmd的分析方式一样&#xff0c;我们只要实现 visitor接口即可实现一个插件。 Service("requestMappingInfoService")public class RequestMappingInfoServiceImpl implements RequestMappingIn…

用R语言做词频统计_R语言 | 词频统计

Python网络爬虫与文本数据分析本章内容导入停用词读数据&#xff0c;分词剔除停用词导入停用词表library(dplyr)## [1] "?" "、" "。" "“" "”" "《" "》" "!" "…

PHP拿到别人项目如何修改为自己

以下为借助google翻译的&#xff0c;个人润色了一下&#xff0c;官方版里面感觉有很多问题&#xff0c;我这里有我个人修改大部分问题的版本&#xff0c;包括翻译完善&#xff0c;有需要的可以联系我&#xff1a;qyj8411163.com 1. 在您网站的根目录创建名为“webim”的文件夹。…

浅析Hyperledger Fabric共识算法

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链系统是一个分布式架构&#xff0c;交易账本信息由各个节点管理&#xff0c;组成一个庞大的分布式账本。在分布式系统中&#xff0c;各个节点收…

python 获取用户ip_Python爬虫教程:你还在苦苦拉票吗?刷票小程序案例原理剖析!...

你还在苦苦拉票吗&#xff1f;前言剖析投票原理处理思路具体实战主要流程具体细节python代码实例python具体细节java代码实现java总结点击此处&#xff0c;获取海量Python学习资料&#xff01;前言现在生活中离不开各类的比赛&#xff0c;然而&#xff0c;各个比赛离不开投票&a…

下拉菜单被挡住了,DIV置于最底层的方法

网站常会用到一些 下拉菜单&#xff0c;&#xff0c;幻灯片&#xff0c;&#xff0c;&#xff0c;飘浮广告等。但经常会发现。幻灯片会挡住下拉菜单或者飘浮广告等。解决办法有下第一&#xff0c;可将幻灯片所在DIV 置于最底层。添加CSS如下style"z-index:-100;position: …

github的删除

github项目删除 首先找到你要删除的项目&#xff0c;点击开 复制项目名称然后找到Settings 将滚动条滑至底部&#xff0c;找到 Danger Zone 下的 Delete this repository 这里会弹出一个警告对话框 将该项目名称重新输一遍即可 这里会弹出账号重新确认&#xff0c;将密码在输入…

区块链的去中心化VS传统互联网的去中心化:技术与治理的双重困境

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链的去中心化VS传统互联网的去中心化&#xff1a;技术与治理的双重困境11 主要观点&#xff1a; 1、传统互联网经典的去中心化项目BitTorrent…