蓝桥杯学习笔记三:Delay函数毫秒变微秒

news/2025/3/15 11:16:42/

平时的HAL_Delay()都是毫秒单位的,但是进去这个函数看看的话,也看不出来是咋回事,我也不理解。但是就说在网上知道了一个方法:用SysTick_Config();这个函数就是来控制Delay函数的单位1代表计数器计数多少次。比如SysTick_Config(80);80000000/1000=1000000,所以Delay里面为1000000才代表是1s,也就是Delay(1)为1微秒。同理可知,如SysTick_Config(80000)时,Delay(1)为1ms。

但是这样不好,因为好多地方用到了Delay,这样改动比较大,可以在网上用现成的Delay_us();

void delay_us(u32 nus)
{               
        u32 temp;                     
        SysTick->LOAD=nus*fac_us-9;                                         //时间加载          
        SysTick->VAL=0x00;                                                //清空计数器
        SysTick->CTRL=0x01 ;        //开始倒数          
        do
        {
                temp=SysTick->CTRL;
        }while((temp&0x01)&&!(temp&(1<<16)));                //等待时间到达   
        SysTick->CTRL=0x00;        //关闭计数器
        SysTick->VAL =0X00;                                               //清空计数器         
}

蓝桥杯有点卡在计时器原理和中断上,没有找到很好的教程,也懒散了,光想着玩,一会(不一定)再看看。

今天还用esp32cam做了个网络监控,后来觉得流畅度不行,就做了个照相机,按键拍照储存在SD卡,也挺实用。

啊啊啊啊啊啊啊!!学习其实挺好玩的,不该不心甘情愿地去玩啊!


http://www.ppmy.cn/news/810120.html

相关文章

Freertos中两个delay函数

vTaskDelay&#xff1a;至少等待指定个数的 Tick Interrupt 才能变为就绪状态 vTaskDelayUntil&#xff1a;等待到指定的绝对时刻&#xff0c;才能变为就绪态。 main代码&#xff1a; int main( void ) {prvSetupHardware();/* Task1的优先级更高, Task1先执行 */xTaskCreate…

linux中的sleep函数和delay函数

对于做过单片机程序的朋友来说&#xff0c;delay是很常见的函数&#xff0c;通常就是while或者for循环&#xff0c;进行空指令的执行&#xff0c;由于单片机的晶振固定&#xff0c;一个机器周期的时间是固定的&#xff0c;执行多少个空指令&#xff0c; 就可以完成多少个机器周…

【51单片机C语言】2-1模块化Delay函数

1.新建一个Delay.c文件和Delay.h文件 2.Delay.c中&#xff0c;Delay函数代码如下&#xff1a;&#xff08;11.0592MHz&#xff0c;可以由stc软件自带的计算器计算出来&#xff09; //Delay函数模块化 void Delay(unsigned int xms) //Delay Function 11.0592MHz {unsigned c…

STM32delay函数应用与说明

STM32delay函数应用应用与说明 Cortex M4内核编程手册有关时钟系统的内容定时函数的实现delay_init 函数delay_us 函数 对与32中的delay函数有很多中形式可以使用&#xff0c;这里提供一些自己使用遇到过的函数类型。 Cortex M4内核编程手册有关时钟系统的内容 p230 SysTick t…

android wait函数使用,Android Sleep/Wait/Delay函数

首先,我是一个初学Android的世界,所以请道歉,如果这是愚蠢的问题.. 我正在尝试做以下事情: 启用移动数据 等待10秒 一个。检查Mobile是否有IP地址(数据连接成功) 湾如果未连接,则禁用数据 C。转到第1步 这些步骤1到3在For循环中执行用户给定的重试次数。 现在我的问题是:…

delay函数

在VC中使用带上头文件#include <windows.h>注意:在VC中Sleep中的第一个英文字符为大写的"S"在标准C中是sleep, 不要大写.. 下面使用大写的来说明,, 具体用什么看你用什么编译器. 简单的说VC用Sleep, 别的一律使用sleep.Sleep函数的一般形式:Sleep(unisgned lon…

c语言delay函数的作用,delay函数 delay() c语言延迟函数

51单片机C语言中delay函数是怎么定义和使用的?很多时候我们看别人的故事哀其不幸恨其不争等到发现在自己身上好像突然就明白了别人的道理。 void Delay (unsigned int a){ unsigned int i; while( a 。= 0){ for(定义一个延时xms毫秒的延时函数 void delay(unsigned int xms) …

c语言delay函数的作用,delay用法(delay函数使用)

是delay to do 还是delay doing 还是delay do?还是什么啊~~ 问下 delayvt.延期, 延缓; 推迟We decided to delay our holiday until next month.我们决定将休假延至下个月。所以应该是delay doing 函数名: delay 功 能: 将程序的执行暂停一段时间(毫秒) 用 法: void dela…