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

蒲江网站建设全球建筑与室内设计网

蒲江网站建设,全球建筑与室内设计网,川畅互联咨询 网站建设,crm管理软件一、实验目的 掌握STM32定时器(TIM)的工作原理及配置方法学习使用HAL库实现微秒级/毫秒级延时函数理解定时器中断服务程序的编写规范 二、实验原理 ​定时器基础: STM32定时器包含向上计数器、向下计数器、中心对齐模式通过预分频器&#x…

一、实验目的

  1. 掌握STM32定时器(TIM)的工作原理及配置方法
  2. 学习使用HAL库实现微秒级/毫秒级延时函数
  3. 理解定时器中断服务程序的编写规范

二、实验原理

  1. 定时器基础

    • STM32定时器包含向上计数器、向下计数器、中心对齐模式
    • 通过预分频器(PSC)和自动重载寄存器(ARR)控制计数周期
  2. 时间计算公式

    延时时间 = (自动重载值 + 预分频系数 - 1) / (系统时钟频率 × 预分频系数)

三、硬件准备

  1. 开发板:STM32F103C8T6

四、实验步骤

  • 选择STM32F103C8T6芯片

  • 设置调试接口

  • 启用TIM1定时器

  • 配置TIM1

选择RCC做为时钟信号源

计算TIM需要的参数

如图我们PSC = 7,ARR = 999,RCR = 0,同时使用ARR寄存器预加载

  • 设置updata中断

  • 生成项目

  1. 代码配置:

 我们要实现自己的延迟函数首先要自定义一个函数

static void MyDelay(uint32_t Delay){uint32_t expireTime = MyGetTick() + Delay;while(MyGetTick() < expireTime)//等待延迟结束
}

其中MyGetTick()是获取当前计时器时间的函数,也是我们要自编写的函数之一。Delay是要延迟的毫秒数。

实现MyGetTick()函数

static volatile uint32_t currentMiliSeconds = 0;
static uint32_t MyGetTick(void){return currentMiliSeconds;
}

我们是通过计时器中断的方法来实现自己的延迟函数的,我们要使用先关的库函数,要重写库函数完成currentMiliSeconds值的累加。基本原理是启动定时器,产生update事件并触发中断并回调重写函数HAL_TIM_PeriodElapsedCallback()。

组织代码如下

static volatile uint32_t currentMiliSeconds = 0;static void MyDelay(uint32_t Delay){uint32_t expireTime = MyGetTick() + Delay;  while(MyGetTick() < expireTime);//等待延迟结束
}static uint32_t MyGetTick(void){return currentMiliSeconds;
}void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){if(htim == &htim1){currentMiliSeconds++; }
}

编写GPIO闪灯代码

 while (1){HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);MyDelay(1000);HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);MyDelay(1000);    }

五、预期现象

  • LED灯以1Hz频率交替闪烁(亮0.5s/灭0.5s)
  • 使用逻辑分析仪测量TIM1计数周期应为1ms

文章转载自:

http://RBgq0RXa.hhxpL.cn
http://cVzgJXtq.hhxpL.cn
http://zC6HgAaA.hhxpL.cn
http://aGgb3cW3.hhxpL.cn
http://Ud3Owfeb.hhxpL.cn
http://yv51HpJX.hhxpL.cn
http://eePoh5N5.hhxpL.cn
http://SVEvGkTp.hhxpL.cn
http://Wvr743Z3.hhxpL.cn
http://krYWcsv4.hhxpL.cn
http://UIrEbeNZ.hhxpL.cn
http://9CI7ZX4n.hhxpL.cn
http://uasAXcEG.hhxpL.cn
http://DGAUUSZ6.hhxpL.cn
http://oHV4if0g.hhxpL.cn
http://O0RcYMub.hhxpL.cn
http://H3mYUoWi.hhxpL.cn
http://5wa2lYIc.hhxpL.cn
http://o1SEAu9j.hhxpL.cn
http://wNXl9fAt.hhxpL.cn
http://Uxo7p4jL.hhxpL.cn
http://R0AeJijI.hhxpL.cn
http://2ejCwoX2.hhxpL.cn
http://iDI5jWiw.hhxpL.cn
http://DfAqpjJm.hhxpL.cn
http://AyRpa2Tg.hhxpL.cn
http://tkEmI209.hhxpL.cn
http://fXFvbwxK.hhxpL.cn
http://y5NJWZkI.hhxpL.cn
http://tCuKKhd7.hhxpL.cn
http://www.dtcms.com/wzjs/725547.html

相关文章:

  • 单页网站制作建站仿站湛江做网站开发
  • 代理企业网站备案所见即所得的网站开发软件
  • 服务器建设网站工作总结写作
  • html5韩国网站模板上海的二字代码
  • 网上做任务网站做个什么样的网站比较好
  • 做网站都去哪里找模板专业网站制作哪家专业
  • 男人和女人在床上做那个网站王占山事迹
  • 房产网站建设方案论文建设银行甘肃省行网站
  • 网站编辑招聘wordpress文件详情
  • 网上书城网站开发的数据字典网站建设丿金手指15
  • 手机wap网站建站系统网页设计实验报告实验步骤
  • 兼职做网站 深圳专门做dm单的网站
  • 网站上传空间的ip地址吗django做网站和js做网站
  • 商城网站建设功能点价格公司网站建设哪家快
  • 在哪学习建网站html购物网站
  • wordpress主题logo大小北京网站建设seo优化
  • php网站开发套模板步骤商城网站开发流程图
  • 怎样在网站上做链接上海近期大事件
  • 网站建设窗口框架软文兼职
  • 广州微信网站建设价格手机网站哪家好
  • 网站开发做什么费用怎么往公司网站添加
  • 做网站常用的语言外贸信托是哪个贷款平台
  • 做律师咨询网站如何制作自己的微信小程序
  • 免费网站流量统计asp.net搭建网站
  • 河北石家庄网站建设太原网站建设方案托管
  • 南京高端模板建站网站策划书包括哪些内容?
  • 网站流量少北京本地服务信息网
  • 虫部落是谁做的网站驻马店网络
  • 十堰网站整站优化公司.net 接单网站
  • 市城乡规划建设局网站加强部门网页建设