当前位置: 首页 > news >正文

上海网站建设怎么赚钱vps网站建设

上海网站建设怎么赚钱,vps网站建设,学校网站建设的风险分析,做百度推广会送网站吗如果希望在不使用硬件定时器的情况下实现软延时(即通过 CPU 空操作实现延时),可以通过计算 CPU 周期数来实现 ms 和 us 级别的延时。以下是基于 216 MHz 主频的实现方法: 1. 实现原理 CPU 周期计算:在 216 MHz 的主频…

如果希望在不使用硬件定时器的情况下实现软延时(即通过 CPU 空操作实现延时),可以通过计算 CPU 周期数来实现 ms 和 us 级别的延时。以下是基于 216 MHz 主频的实现方法:

1. 实现原理
CPU 周期计算:在 216 MHz 的主频下,1 秒可以执行 216,000,000 个 CPU 周期。

1ms = 216,000 个 CPU 周期。

1us = 216 个 CPU 周期。

空操作延时:通过执行空操作(NOP 指令)来消耗 CPU 周期,从而实现延时。

2. 实现 ms 延时函数

void Delay_ms(uint32_t ms)
{uint32_t i;for (i = 0; i < ms; i++){Delay_us(1000);  // 调用微秒延时函数}
}

3. 实现 us 延时函数

void Delay_us(uint32_t us)
{uint32_t delay_cycles = us * (SystemCoreClock / 1000000);  // 计算需要的 CPU 周期数volatile uint32_t count = 0;for (count = 0; count < delay_cycles; count++){__asm__("nop");  // 空操作,占用一个 CPU 周期}
}

4. 完整示例
以下是一个完整的示例,展示如何使用软延时实现 ms 和 us 延时:

#include "stm32f4xx_hal.h"  // 包含 HAL 库头文件// 微秒延时函数
void Delay_us(uint32_t us)
{uint32_t delay_cycles = us * (SystemCoreClock / 1000000);  // 计算需要的 CPU 周期数volatile uint32_t count = 0;for (count = 0; count < delay_cycles; count++){__asm__("nop");  // 空操作,占用一个 CPU 周期}
}// 毫秒延时函数
void Delay_ms(uint32_t ms)
{uint32_t i;for (i = 0; i < ms; i++){Delay_us(1000);  // 调用微秒延时函数}
}int main(void)
{// 初始化 HAL 库HAL_Init();// 配置系统时钟SystemClock_Config();// 初始化 GPIO__HAL_RCC_GPIOA_CLK_ENABLE();GPIO_InitTypeDef GPIO_InitStruct = {0};GPIO_InitStruct.Pin = GPIO_PIN_5;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);// 主循环while (1){// 闪烁 LED(500ms 间隔)HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);Delay_ms(500);// 微秒延时示例Delay_us(1000);  // 延时 1ms}
}

5. 注意事项
编译器优化:

如果编译器优化级别较高(如 -O2 或 -O3),可能会将空操作循环优化掉,导致延时失效。

解决方法:

使用 volatile 关键字修饰循环变量(如 volatile uint32_t count)。

在编译时禁用优化(如 -O0)。

精度问题:

软延时的精度受 CPU 负载和其他中断的影响,可能不够精确。

如果需要高精度延时,建议使用硬件定时器。

主频变化:

如果系统主频发生变化(如动态调整时钟频率),需要重新计算 delay_cycles。

空操作指令:

asm(“nop”) 是 GCC 编译器的内联汇编语法,表示插入一个空操作指令。

如果使用其他编译器(如 IAR 或 Keil),可能需要使用对应的语法。

http://www.dtcms.com/a/493544.html

相关文章:

  • 网站建设一二级目录网站规划与建设课设报告
  • 绥芬河建设工程网站如何新建网站dw
  • 网站开发问卷调查优化设计一年级下册数学答案
  • 固原市建设局网站wordpress页面自定义
  • 接单做网站的茶叶网站模板免费下载
  • 政务网站建设目标和核心功能重庆小程序开发哪家好
  • 找事做网站怎么弄微商城运营
  • 网站开发版权归谁百度百度一下你就知道主页
  • app网站建设源码三合一网站有必要吗
  • 北京网站建设佳v询 lotlek 能上词app软件系统开发
  • 网站改版的好处关键词排名优化易下拉教程
  • 杭州网站制作培训免费下载微信并安装
  • 威海做网站的公司重庆建筑设计公司排名
  • 网站换服务器对排名有影响吗做网站名词
  • 撤销个人网站备案看门户是什么意思
  • 网站开发网站开发深圳seo教程
  • 网站开发与设计案例wordpress汉化服务
  • 怎么用服务器lp做网站漯河网站建设网站建设
  • 高端网站开发哪家强搜索引擎推广和优化方案
  • 网站简介模板原生多重筛选插件wordpress
  • 对网站建设安全性的要求网站开发年终总结
  • 推荐做幻灯片搜图网站施工企业的期间费用主要包括哪些
  • 乐清网站优化推广正规的网站优化推广公司
  • 做一手房产中介用什么网站好怎么做网站访问被拒绝
  • 玉溪网站网站建设重庆网站建设首选卓光
  • 免费建立平台网站北京网站设计培训学校
  • dedese网站台州免费做网站
  • 直播网站的建设长春建筑网站
  • 网站ip指向列表北京有多少家网站
  • 更新网站的步骤海口创建公司