1、基本定时器TIM6配置及说明(需要中断)



代码部分:

TIM6_Init(); //初始化定时器不意味着开启了中断,需要下面代码开启中断
HAL_TIM_Base_Start_IT(&htim6);//每100ms触发一次中断void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)//溢出事件(更新事件)回调函数
{if (htim->Instance == TIM6){//想干啥干啥}
}

忘记配置中断优先级了,我是将优先级配置为2,0的

2、捕捉一路PWM值(PA15)(需要中断)


定时器2的配置,定时器3的配置是一样的

定时器从模式控制器用于接收除了内部时钟外的信号,该信号用于完成如下控制:
1.复位Reset模式:使用内部时钟作为时钟源,TI1/2外部有效信号复位计数器。例如,CH1触发输入上升沿有效时,计数器复位到默认值0。
2.门控Enable模式:使用内部时钟作为时钟源,根据TI1/2外部电平情况运行计数器。比如当CH1输入为高电平时候,定时器正常计数;当CH1输入为低电平时,停止计数。
3.触发Enable模式:使用内部时钟作为时钟源, TI1/2外部触发启动计数器。例如,CH1触发输入上升沿时,定时器启动运行。
4.外部时钟模式2+触发模式:使用外部ETR作为时钟源,配合其他(1,2,3)的触发启动模式。



代码:

//初始化
HAL_TIM_Base_Start_IT(&htim2);            //启动定时器 ,注意不是HAL_TIM_Base_Start
HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1); //启动定时器通道输入捕获并开启中断,注意不是HAL_TIM_IC_Start
HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_2);//回调函数
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{if(htim->Instance == TIM2){if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1)//注意是HAL_TIM_ACTIVE_CHANNEL_1,不是TIM_CHANNEL_1{PWM_T_Count = HAL_TIM_ReadCapturedValue(htim,TIM_CHANNEL_1)+1;PWM_Duty = (float)PWM_D_Count/PWM_T_Count;}else if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2){PWM_D_Count = HAL_TIM_ReadCapturedValue(htim,TIM_CHANNEL_2)+1;}}
}

注意
注意不是HAL_TIM_Base_Start、HAL_TIM_IC_Start,而是HAL_TIM_Base_Start_IT、HAL_TIM_IC_Start_IT
判断通道的时候是HAL_TIM_ACTIVE_CHANNEL_1,不是TIM_CHANNEL_1

忘记配置中断优先级了,PWM输入我是将优先级配置为3,0的

3、PWM波的输出(PA6和PA7)(输出PWM不需要中断)

上图的Pulse为300,不是30,写错了,Pulse是占空比的意思


代码:

TIM3_Init();
TIM17_Init();
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);   //启动TIM3、TIM17PWM输出
HAL_TIM_PWM_Start(&htim17,TIM_CHANNEL_1);  //只需要开启就能输出PWM了,不需要其他的设置

4、输出方波(PA2,TIM15_CH1)(需要中断)

忘记配置中断优先级了,我是将优先级配置为2,0的


代码:

//初始化
TIM15_Init();
HAL_TIM_OC_Start_IT(&htim15, TIM_CHANNEL_1);  //启动CH1比较输出//回调函数
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
{if (htim->Instance == TIM15){if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1){__HAL_TIM_SET_COMPARE(htim,TIM_CHANNEL_1,(__HAL_TIM_GetCounter(htim)+500));//再过500个单位再中断一次//如果是1M的分频后时钟,则方波频率为100000/(2*500)=1000HZ//如果是100,则100000/(2*100)=5000HZ}}
}

蓝桥杯嵌入式模板构建_tim相关推荐

  1. 蓝桥杯嵌入式模板的构建——STM32G431RB(LCD和ADC采集电压)

    基于LED和按键的模板来写的 下载工程的链接 蓝桥杯嵌入式模板的构建--STM32G431RB(LED和按键的配置)-其它文档类资源-CSDN下载这个模板亲测有效只写了按键三和按键4对LED进行点灯和 ...

  2. 【蓝桥杯嵌入式】第六届省赛程序题项目代码及讲解

    文章目录 蓝桥杯嵌入式第六届省赛 介绍 配置 RTC配置 配置ADC 配置串口: LED和按键的配置 E2PROM 头文件 初始化 串口测试 LCD测试 RTC测试 ADC测试 按键和LED测试 E2 ...

  3. 突击蓝桥杯嵌入式(六)——第十届省赛真题

    突击蓝桥杯嵌入式(六)--第十届省赛真题 一.题干 二.题目分析 考点1.ADC(没啥好说的) 占用引脚PB15(R37) 考点2:按键4个(PB0,PB1,PB2,PA0) 考点3:LCD,高亮 考 ...

  4. 【蓝桥杯嵌入式】【STM32】7_RTC之实时时间显示和硬件闹钟设置

    文章目录 1.RTC的三个可用时钟源 2.RTC框图 3.写代码前需要知道的一些标志位 4.配置流程 5.源代码 6.关于设置闹钟这件事  6.1.配置流程  6.2.实验源代码   下载工程文件: ...

  5. 蓝桥杯嵌入式比赛LCD屏如何高亮显示某一个字符

    蓝桥杯嵌入式第九届赛题用到了高亮显示,主要由 void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii);函数来完成,这个函数不再是一下子操作一行了,而是一 ...

  6. 蓝桥杯嵌入式板-解决LCD使LED亮灭混乱的办法

    比赛板用的是stm32f103RB芯片,64管脚,LED与LCD同用了管脚PC8~PC15(对应LED1~LED8),所以板子上增用了一个锁存器--M74HC573.在控制LED的时候,只需在输出对应 ...

  7. 第九届蓝桥杯-嵌入式比赛体会与备赛经验

    原文地址:http://www.cnblogs.com/NickQ/p/8721317.html 说起蓝桥杯,相信很多电子类的学生,应该很熟悉了吧...上周日,我也去湖北工业大学参与了一下.说起这次经 ...

  8. 蓝桥杯嵌入式CT117E硬件开发平台经验分享11 | 第九届蓝桥杯国赛题

    基于 基于 CT117E 嵌入式竞赛板 嵌入式竞赛板 的 "电子秤"程序设计与调试 赛题硬件框图 由于赛题细节多,赛题PDF要求书放入了附件,链接后续加入.本文主要讲述本届题目的困 ...

  9. 国信长天蓝桥杯嵌入式类——stm32——使用keil4建立工程文件过程

    蓝桥杯嵌入式----使用keil4建立工程文件过程 目录 蓝桥杯嵌入式----使用keil4建立工程文件过程 一.完成文件建立 (一).先建立名为test工程文件夹,如图.并建立如下几个文件夹 (二) ...

最新文章

  1. matplotlib绘图库入门
  2. 微服务架构 — 服务治理 — 服务限流、服务降级、服务熔断
  3. oracle 创建临时表报权限不足,ORACLE 临时表空间满了的原因解决方案
  4. python中messagebox用法实例_pyqt4教程之messagebox使用示例分享
  5. 前端学习(2925):vue改变样式1
  6. clone是深拷贝还是浅拷贝_Python中的浅拷贝和深拷贝
  7. 随想录(一个android原生app的代码赏析)
  8. 力扣——LCP 37. 最小矩形面积(困难)
  9. cURL 原作者收到死亡恐吓邮件!
  10. cas client 更新ticket_有人知道 cas单点登录系统是怎么样取得proxyticket的?
  11. 基于OpenCV的人脸识别考勤系统——创业计划书
  12. 打开软件后跳出服务器正在运行中,win10系统打开软件提示“服务器正在运行中”的操作步骤...
  13. gis利器之Gdal(二)shp数据读取
  14. 基于Servlet的学生管理系统
  15. 9月30日skype事件
  16. 蒸汽流量计算软件_海口气体腰轮订制,涡街流量计脉冲,期待合作
  17. Java NIO笔记05
  18. java实现评论功能_Java实现评论回复功能的完整步骤
  19. 计算机综合应用教材,系统测评计算机综合应用技能期末作业教材.doc
  20. Hadoop之仿写搜索引擎

热门文章

  1. Roam Research 的 iOS 客户端正式发布了,好用吗?
  2. cookie.getMaxAge()的-1是什么意思
  3. (经典论文导读)预测计算机对各行业的替代程度
  4. 30天GRE作文冲刺教程!
  5. EditText输入类型InputType值
  6. TI链接器命令文件入门
  7. c语言改为汇编语言简单例题,求大神把汇编语言改成C语言
  8. i wanna be
  9. 2000年悉尼奥运会歌曲《The Flame》铃声 2000年悉尼奥运会歌曲...
  10. 接第一篇博客:fw的第二场CTF——HECTF2021 WP