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

如何开公司做网站电商网站平台

如何开公司做网站,电商网站平台,惠州外包网站建设,Xammp安装Wordpress目录 1.时钟选择(这里选择高速外部时钟) ​编辑 2.调试模式和时基源选择: 3.LED的GPIO配置 这里用板子的红灯PB5 4.工程配置 5.1ms的systick中断实现led闪烁 源码: 6.修改systick的中断频率 7.systick定时原理 SysTick 定时器的工作原理 中断触发机制 HAL_SYSTICK_Co…

目录

1.时钟选择(这里选择高速外部时钟)

​编辑

2.调试模式和时基源选择:

3.LED的GPIO配置 这里用板子的红灯PB5

4.工程配置

5.1ms的systick中断实现led闪烁 源码:

6.修改systick的中断频率

7.systick定时原理

SysTick 定时器的工作原理

中断触发机制

HAL_SYSTICK_Config 函数

举个例子


1.时钟选择(这里选择高速外部时钟)

2.调试模式和时基源选择:

这里我用的是SW调试模式,因为只占用两个GPIO,时基源选择systick 系统定时器

3.LED的GPIO配置 这里用板子的红灯PB5

                                                                LED原理图

低电平点亮,配置GPIO

4.工程配置

5.1ms的systick中断实现led闪烁 源码:

在原本生成的代码中修改部分

main.c

  
/* USER CODE BEGIN Includes */
#include "stm32f1xx_it.h"
/* USER CODE END Includes *//* USER CODE BEGIN WHILE */while (1){if(flag==1){HAL_GPIO_TogglePin((GPIO_TypeDef *)GPIOB, (uint16_t) GPIO_PIN_5);flag=0;}/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}

 stm32f1xx_it.h

/* USER CODE BEGIN Includes */
extern volatile  int systick,flag;
/* USER CODE END Includes */

 stm32f1xx_it.c

/* USER CODE BEGIN Includes */
volatile int systick=0,flag=0;
/* USER CODE END Includes */void SysTick_Handler(void)
{/* USER CODE BEGIN SysTick_IRQn 0 */if(flag==0){systick++;if(systick>1000){flag=1;systick=0;}}/* USER CODE END SysTick_IRQn 0 */HAL_IncTick();/* USER CODE BEGIN SysTick_IRQn 1 *//* USER CODE END SysTick_IRQn 1 */
}

6.修改systick的中断频率

HAL系统默认的systick的中断频率是1kHZ  也就是1ms中断一次

  /* USER CODE BEGIN 2 */// 修改时钟源为 HCLK(8MHz)
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);// 再重新配置重装载值
uint32_t new_load = (8000000 / 1000) - 1; // 1ms中断(7999)
HAL_SYSTICK_Config(new_load);/* USER CODE END 2 */

在while(1)前配置   为1ms中断

7.systick定时原理

SysTick 定时器是一个广泛应用于嵌入式系统中的定时器,常用于周期性中断。它的基本工作原理是基于系统时钟(SystemCoreClock)来生成一个定时周期,并通过计数器进行倒计时,直到计数器的值为零时触发一个中断。

SysTick 定时器的工作原理

  1. 系统时钟(SystemCoreClock

    • SysTick 定时器的计数频率由系统时钟决定。系统时钟频率就是每秒钟系统产生的时钟周期数,也可以理解为每秒系统执行的时钟信号的次数。
  2. 定时器计数器

    • SysTick 是一个 24 位的倒计时计数器,从 ReloadValue 开始倒数。
    • SysTick 的计数器在每次时钟周期减少 1,直到计数器的值减少到 0 为止。
    • 当计数器的值为 0 时,SysTick 会触发一个中断,表示定时周期已到。
  3. 重载值(ReloadValue

    • ReloadValue 定义了定时器倒计时的起始值,它通过公式与系统时钟频率相关。
    • 我们通过设置 ReloadValue 来控制定时器的计数周期,从而设置中断的时间间隔。

    例如,如果我们希望每 1 毫秒触发一次中断,而系统时钟频率为 8 MHz(即 8,000,000 Hz),则需要将 ReloadValue 设置为:

    这表示计数器会从 8000 开始倒数,经过 8000 个时钟周期后触发中断,每个时钟周期为 1 微秒,所以总共时间为 1 毫秒。

  4. 定时器的倒计时与重载

    • 每当计数器倒计时到 0 时,SysTick 会重新加载 ReloadValue(即 8000),然后继续倒计时,形成一个循环。
    • 这一周期性过程确保了每次计数器到 0 时,都会触发一个中断,时间间隔与 SystemCoreClock 和 ReloadValue 密切相关。

中断触发机制

  • 每当 SysTick 定时器的计数器从 ReloadValue 值递减到 0 时,系统会触发一个中断,通知 MCU 进行特定的任务。
  • 这个中断的触发频率与重载值密切相关。例如,设置 ReloadValue 为 8000,且系统时钟为 8 MHz,每经过 8000 个时钟周期就会触发一次中断,时间间隔为 1 毫秒。

HAL_SYSTICK_Config 函数

在 STM32 的 HAL 库中,HAL_SYSTICK_Config 函数用于配置 SysTick 定时器。它的原理如下:

HAL_SYSTICK_Config(SystemCoreClock / 1000);
  • 该函数通过将 SystemCoreClock / 1000 作为重载值设置给 SysTick,意味着系统时钟除以 1000,设置定时器的重载值,使得 SysTick 每经过 1000 微秒(即 1 毫秒)触发一次中断。
  • SystemCoreClock / 1000 的结果就是每 1 毫秒触发一次中断,这使得你可以在中断服务程序中执行特定的任务。

举个例子

假设系统时钟为 8 MHz:

  • 通过 HAL_SYSTICK_Config(SystemCoreClock / 1000),将重载值设置为 8000。
  • 每经过 8000 个时钟周期,SysTick 会触发一个中断。
  • 8000 个时钟周期表示 1 毫秒,触发频率为 1 毫秒一次。

当中断发生时,你可以在中断处理函数中编写需要定时执行的任务,比如采样数据、更新计数器等。

http://www.15wanjia.com/news/55451.html

相关文章:

  • 网站开发外包项目网站重庆网站排名公司
  • 一起做网店17seo网站有优化培训班吗
  • 那些网站可以做淘宝店铺推广口碑营销的产品
  • 苏州智信建设职业培训网站最近一周的新闻大事10条
  • 网站建设远程工作免费搭建网站的软件
  • 云南找工作靠谱的网站河南网站建设哪里好
  • 阿里巴巴个人网站怎么做推广公司好做吗
  • 福建高能建设工程有限公司网站推广方案格式模板范文
  • 美容整形网站建设seo推广招聘
  • mm 263企业邮箱登录商品标题关键词优化
  • 大同市住房城乡建设网站如何做个网站推广自己产品
  • 做影视网站用主机还是用服务器深圳网站优化哪家好
  • 做多媒体挣钱吗深圳纯手工seo
  • 模板网站优化防恶意竞价点击软件
  • 电脑可以做网站服务器么站长工具seo综合查询
  • 江苏省公路与水路建设网站seo接单一个月能赚多少钱
  • 亚洲尺码与欧洲尺码区别贵港seo
  • 买东西在什么网站最好谷歌广告怎么投放
  • 自己可以做企业网站吗关键词完整版
  • 微信开发网站建设百度网站流量统计
  • 手机网站建设地址网络营销工程师培训
  • 重庆江北营销型网站建设公司推荐百度指数怎么看地域数据
  • 制作网站公司选 择乐云seo专家优化设计电子版在哪找
  • 怎么自学建筑设计seo服务如何收费
  • 网上去哪里找做网站的湖北网络推广有限公司
  • 网站自动收录百度指数有三个功能模块
  • 自建网站需要哪些技术站长检测工具
  • 诛仙3官方网站时竹任务荧灵怎么做怎么开展网络营销推广
  • 可以做c语言任务的网站网络营销的8个基本职能
  • 如何查询一个网站的icp什么是全网营销推广