【stm32/CubeMX、HAL库】嵌入式实验六:定时器(3)|外部脉冲计数

参考:

【【正点原子】手把手教你学STM32CubeIDE开发】 https://www.bilibili.com/video/BV1Wp42127Cx/?p=13&share_source=copy_web&vd_source=9332b8fc5ea8d349a54c3989f6189fd3

《嵌入式系统基础与实践》刘黎明等编著,第九章定时器,PWM从P289开始。

【【STM32教程】入门教程(基于HAL库+CubeMX+MDK-ARM)】 https://www.bilibili.com/video/BV1y7411m7gg/?share_source=copy_web&vd_source=9332b8fc5ea8d349a54c3989f6189fd3

定时器引脚映射

STM32F103定时器复用功能映射及其通道_stm32定时器通道复用-CSDN博客

参看上面的文章或者查看手册(8.3.7)。

实验内容

3、外部脉冲计数设计。 设计计数器,对外部脉冲(开发板上 PIC 单片机提供的脉冲信号)进行计数,并在 数码管上实时显示计数值。

提供信号的外部电路(TEST引脚处,可输出1khz,2khz等多种频率):

使用定时器2进行外部脉冲计数,使用的引脚为PA0

cubeMX配置如下(由于频率过快,计数值设为1000-1,计1000次才真正记一次数):

 

硬件连接:用跳线短接 PA0和TEST输出引脚。

代码编写同按键外部中断的写法大同小异:

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

/*定时器更新中断回调函数

1.该函数由定时器中断通用处理函数 HAL_TIM_IRQHandler 调用,完成所 有定时器的更新中 断的任务处理

2.函数内部需要根据定时器句柄的实例来判断是哪一个定时器产生的本次更 新中断

3.函数由用户根据具体的处理任务编写 */

uint8_t flag=0;int res=0;
uint8_t table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40 };//10表示'-'
uint8_t s[]={0,0,0,0,0,0,0,0};void write_byte(uint8_t date){unsigned char i;for(i=0;i<8;i++){HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,(date>>(7-i))&0x01);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,1);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,0);}HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,1);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,0);}void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{if(htim->Instance==htim2.Instance){//int cntt=__HAL_TIM_GET_COUNTER(&htim2);测试用,取出计数寄存器的值res=res+1;flag=1;}
}

主函数中启动中断 

  HAL_TIM_Base_Start_IT(&htim2);

 while循环,只显示了计数值的末两位

 /* USER CODE BEGIN 3 */if(flag==1){flag=0;s[7]=res%10;s[6]=res/10%10;}for(int i=8;i<16;i++){write_byte(table[s[15-i]]);HAL_GPIO_WritePin(GPIOF,0x01<<i,0);HAL_Delay(1);HAL_GPIO_WritePin(GPIOF,0x01<<i,1);}//HAL_Delay(1000);}/* USER CODE END 3 */

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/14437.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu root密码遗忘的修改办法

在Ubuntu中&#xff0c;如果你需要进入恢复模式&#xff08;Recovery Mode&#xff09;来修改用户密码&#xff0c;可以按照以下步骤进行&#xff1a; 重启计算机&#xff1a; 重新启动你的Ubuntu系统&#xff0c;等待GRUB菜单出现。 进入恢复模式&#xff1a; 如果GRUB菜单没…

Generic Segmentation Offload(GSO)

Generic Segmentation Offload汉语意思是啥&#xff1f; Generic Segmentation Offload&#xff08;GSO&#xff09;的汉语意思是“通用分段卸载”。在网络通信中&#xff0c;GSO 是一种技术&#xff0c;用于在网络栈中将较大的传输单元分段为更小的单元&#xff0c;以提高网络…

docker安装常用软件

1、potainer docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock \-v /mnt/opt/data/docker/portainer:/data \--restartalways --name portainer portainer/portainer-ce:latest 2、cloudreve docker run -d \ --name cloudreve \ -p 5212:5212 \ -…

文心智能体应用示例:职场反PUA专家的诞生

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

C#编程-.NET Framework使用工具类简化对象之间的属性复制和操作

在C#编程中&#xff0c;对象之间的属性复制和操作是一个常见的需求。为此&#xff0c;.NET Framework提供了多种实用工具库&#xff0c;如AutoMapper、ValueInjecter和ExpressMapper。这些库通过简化代码&#xff0c;提高了开发效率。本文将介绍这些工具库&#xff0c;比较它们…

远程桌面连接不上远程服务器,如何有效的解决远程桌面连接不上远程服务器的问题

在解决远程桌面连接不上远程服务器的问题时&#xff0c;我们需要采取一种专业且系统的方法来排查和修复可能存在的故障。以下是一些建议和步骤&#xff0c;帮助用户更有效地解决此类问题。 首先&#xff0c;用户需要确认远程服务器的状态和网络连接是否正常。 这包括检查服务器…

Linux入门攻坚——23、DNS和BIND基础入门2

前一篇实践了正向解析服务器的配置使用&#xff0c;如何配置反向解析呢&#xff1f; 反向区域&#xff1a; 区域名称&#xff1a;网络地址反写.in-addr.arpa. 192.168.138. --> 138.168.192.in-addr.arpa. (1)定义区域&#xff1a; zone "ZONE_NAME" I…

必应bing国内广告如何开户,这篇文章告诉你!

搜索引擎广告推广已成为企业提升品牌知名度、吸引潜在客户的重要渠道&#xff0c;微软必应Bing&#xff0c;作为全球领先的搜索引擎之一&#xff0c;其广告平台为企业提供了一个高效、精准的推广渠道。如何在必应Bing国内广告平台上开户&#xff0c;让你的品牌大放异彩呢&#…

一流的人才,不如二流的执行力

别总天天问什么赛道好做 说句实话&#xff0c;有的人&#xff0c;你给他再好的赛道也没用&#xff0c;做不起来还是做不起来有的人随便做一个赛道都能成功

Github Action 使用Python3.13

使用Github Action进行自动构建时&#xff0c;遇到这样一个问题&#xff1a; 由于Python3.13并未正式发布&#xff0c;所以以下内容未能按预期工作 jobs:build:runs-on: ubuntu-lateststrategy:matrix:python-version: [3.8, 3.9, 3.10, 3.11, 3.12, 3.13]steps:- uses: acti…

java项目之人事系统源码(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的人事系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于vue的人事系统的主要使用者…

IT行业现状及未来发展趋势

IT行业现状及未来发展趋势 引言IT行业现状1. 云计算2. 大数据3. 人工智能4. 物联网5. 5G通信6. 区块链 IT行业未来发展趋势1. 边缘计算2. 人工智能与机器学习3. 量子计算4. 人工智能伦理与法规5. 可持续技术6. 数字孪生技术 结论 引言 随着技术的不断进步&#xff0c;IT行业已…

【Spring】spring入门程序

案例要求&#xff1a;创建一个 Studentservice 类&#xff0c;其中需要使用 studentDao 接口的保存方法&#xff0c;来存储一个Student 类的对象&#xff0c;StudentDao 接口有两个不同的实现类&#xff0c;通过 Spring 的方式&#xff0c;为 Student类创建对象并为属性赋值&am…

若依微服务整合knife4j

在Spring Cloud的微服务架构下&#xff0c;每个微服务并不需要引入前端的ui资源&#xff0c;因此在每个微服务的Spring Boot项目下&#xff0c;引入ruoyi-common-swagger提供的starter即可。 1、在ruoyi-gateway网关模块下&#xff0c;把knife4j依赖资源引入 <!-- knife4j…

【设计模式深度剖析】【A】【创建型】【对比】| 工厂模式重点理解产品族的概念

回 顾&#xff1a;创建型设计模式 1.单例模式&#x1f448;️ 2.工厂方法模式&#x1f448;️ 3.抽象工厂模式&#x1f448;️ 4.建造者模式&#x1f448;️ 5.原型模式&#x1f448;️ &#x1f448;️上一篇:原型模式 | &#x1f449;️下一篇:代理模式 目录…

高中数学:平面向量-基本定理

一、基本定理 二、向量夹角 三、常用性质 三角形中线对应的向量与三角形两边的关系 四、练习 例题1 例题2 解 例题3 解 此题&#xff0c;用到了向量的基本定理&#xff1a;若 a → \mathop{a}\limits ^{\rightarrow} a→、 b → \mathop{b}\limits ^{\rightarrow} b→​…

使用 Lua 扩展功能的 HAProxy 安装指南

使用 Lua 扩展功能的 HAProxy 安装指南 HAProxy 是一个流行的开源负载均衡器和代理服务器&#xff0c;它支持通过 Lua 扩展功能。本文将介绍如何安装和配置支持 Lua 的 HAProxy。 安装 Lua 首先&#xff0c;我们需要安装 Lua 解释器&#xff0c;以便 HAProxy 可以使用 Lua 扩…

信息系统项目管理师--八大绩效域-不确定性绩效域

信息系统项目管理师的八大绩效域包括&#xff1a;干系人、团队、开发方法和生命周期、规划、项目工作、交付、度量、不确定性。 广义的不确定性包括&#xff1a;风险、模糊性、复杂性 预期目标 了解项目的运行环境&#xff0c;包括技术、社会、政治、市场和经济环境等积极识别…

领券拿外卖返利红包,最低0元吃外卖

小蚕荟是利用本地资源和自媒体优势构建的“本地生活服务”平台&#xff0c;总部位于杭州&#xff0c;旨在为用户提供热门的吃喝玩乐本地生活服务类产品。布局已覆盖杭州、南京、上海等一二线城市。 小蚕荟是一款专为用户吃外卖省钱的生活工具&#xff0c;单单可返利15元起&…

ASP+ACCESS基于WEB车辆管理系统

3.1 系统需求分析 该过程是个不断认识不断细化的过程。这里所要完成的工作是深入描述软件的功能和性能&#xff0c;确定软件的设计限制和软件同其他系统元素的接口细节&#xff0c;从而奠定软件的开发基础。 性能需求&#xff1a;该系统中&#xff0c;管理员模块只有管理人员…