版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务2基于状态机的按键检测程序设计12存在的问题TIM在项目2的任务2.2.2按键处理函数中,按键的去抖动采用了软件延时的方法,利用函数HAL_Delay()延时10ms。这种延时去抖动的方法会占用处理器的执行时间,在延时过程中,处理器无法处理其他事务,从而降低了处理器的利用率。因此,在工程应用中往往采用状态机和定时中断相结合的方法来完成按键的检测。intmain(void){LED_Init();//LED灯初始化KEY_Init();//按键初始化
while(1)
{
if(!S)//判断S1是否按下
{HAL_Delay(10);//延时去抖
if(!S)//再次判断S1是否按下
{//点亮LED灯HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET);
}
}}//endofwhile}//endofmain直接延时的方法会占用处理器的执行时间,降低处理器的利用效率。工程应用中常常采用状态机和定时中断去抖动挑战任务1任务目标掌握状态机设计思想2任务内容TIM利用状态机设计思想编写按键处理程序,按键按下后执行操作:记录按键按下的次数,并通过串口打印输出到PC。任务2:利用状态机控制按键34硬件电路TIM按键Key0~Key2按下为低电平,释放为高电平,分别连接到STM32F407ZET6的PE4、PE3和PE2。按键Wk_Up连接到PA0,按下为高电平,释放为低电平。电路图参见图2-14。WK_UP(KEY_UP)KEY2(LEFT_KEY)KEY1(DOWN_KEY)KEY0(RIGTH_KEY)--
南昌大学“卓越”辅导员培养工程建设TIM设计思想状态机是一个抽象概念,表示把一个过程抽象为若干个状态之间的切换,这些状态之间存在一定的联系。状态机的设计主要包括4个要素:现态:是指当前所处的状态。条件:当一个条件满足,将会触发一个动作,或者执行一次状态的迁移。动作:表示条件满足后执行动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作要素不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。次态:表示条件满足后要迁往的新状态。状态机设计思想5--
南昌大学“卓越”辅导员培养工程建设TIM设计实现一:状态定义:根据按键的波形图可以设计三个按键状态按键检测状态:表示按键没有按下的状态按键确认状态:表示按键已经按下的状态按键释放状态:表示等待按键释放的状态二:状态转换条件(假设低电平表示按键按下)当处于按键检测状态时,如果数据线为低,则转换到按键确认状态,否则保持当前状态。当处于按键确认状态时,如果数据线为低,则转换到按键释放状态,并设置按键有效标志;如果数据线为高,则表示可能出现了干扰信号,转换到按键检测状态。当处于按键释放状态时,如果数据线为高,则转换到按键检测状态,表示完成了本次按键检测,否则保持当前状态。按键的状态机设计6状态转换图TIM按键检测状态按键确认状态按键释放状态数据线为高数据线为低数据线为高数据线为低,表示按键确认按下,将设置按键有效标志数据线为低假设采用上拉式按键,(如KEY0~KEY2键),低电平表示按键按下,高电平表示按键释放。7数据线为高8假设采用下拉式按键,(如WK_UP键)
高电平表示按键按下,低电平表示按键释放按键检测状态按键确认状态按键释放状态数据线为低数据线为高数据线为低数据线为高,表示按键确认按下,将设置按键有效标志数据线为高数据线为低状态转换图TIM--
南昌大学“卓越”辅导员培养工程建设GPIO编程思路一:利用Switch
Case多分支语句,通过检测按键引脚的电平来实现按键状态的转换;按键的状态机编程实现二:利用定时器产生10ms的定时中断,在定时中断服务程序中调用按键状态转换函数。每次执行的间隔10ms,可以有效的消除按键抖动,并提高CPU的利用率。910TIMTIM配置TIM6的配置使能中断GPIO使能定时器6更新中断注意:引脚分配和引脚参数配置可以参考进阶任务(按键控制)中的相关配置1112TIMGPIO配置4个按键GPIO的配置下拉上拉程序编写13定义按键状态数据类型定义按键状态数据类型,使用枚举类型实现,包括3个枚举常量,用来表示三种按键状态定义变量GPIO设--
南昌大学“卓越”辅导员培养工程建TIM添加位置头文件、数据类型及函数声明的添加位置用户头文件用户自定义数据类型文件用户常量定义用户变量定义用户宏函数定义用户函数声明14GPIO补充见名知意:利用英文单词或者其缩写形式定义变量或函数,名称要体现变量的作用或函数的功能,切记不要使用拼音来命名。变量一般采用名词形式命名,多个单词间利用大小写字母作为间隔。全局变量的首字母大写,如KeyFlag;局部变量的首字母小写,如keyFlag,便于区分全局变量和局部变量。函数一般采用动宾结构命名,首字母大写,也是利用大小写字母作为间隔,如GetValue等。宏定义和用户自定义数据类型全部采用大写字母,利用下划线作为间隔,如KEY_STATE等。--
南昌大学“卓越”辅导员培养工程建设变量及函数的命名规则1516TIM编码主程序代码17编码TIM添加位置定时器中断回调函数18编码TIM19GPIO验证编译程序,下载到STM32F407核心板,打开串口调试助手,核心板上电,任意按下Key0~Key2或Wk_Up按键,均能记录此键的按下次数,按键按下1次,按键计数器值加1。使用状态机设计思想解决多个按键的检测,较好的提高CPU效率。实验结果如图3-36所示。GPIO总结后台程序在while循环中,USER
CODEBEGIN
3
和USERCODE
END
3外设启动USER
CODE
BEGIN
2
和USER
CODE
END
2用户函数和中断回调函数USER
CODE
BEGIN
4
和USER
CODE
END
4用户代码添加位置2021
任务3智能小车电机调速实现22回顾3.3.1节的任务描述,我们用定时器TIM4的通道1(PB6)和通道2(PB7)产生PWM波,分别连接到L298N电机驱动板的ENA和ENB。使用PC0、PC1分别连接到IN1和IN2,控制左边的电机正转、反转和制动。使用PC2和PC3分别连接到IN3和IN4,控制右边的电机正转、反转和制动。接线原理GPIO表3-35电机调速模块硬件接线表接口名称STM32F系列微控制器L298N电机驱动板直流电机PWM信号输出控制(TIM4)CH1PB6ENA
CH2PB7ENB
PC0IN1
PC1IN2
PC2IN3
PC3IN4
电机动力线
AOUT1Motor1
AOUT2
BOUT1Motor2
BOUT223Timer外设配置配置定时器4配置时基单元配置PWM输出通道TIM4Mode配置设置预分频系数PSC为84-1,自动重载值ARR为100-1,表示PWM信号频率为10Khz配置TIM4的CH1(PB6)、CH2(PB7)输出PWM信号设置捕获/比较值CRR为50,表示PWM信号最初的占空比为50%24TIMGPIO配置4个按键及连接两个电机IN1~IN4GPIO的配置25TIMUART配置默认配置26PWM调速编码实现27PWM调速编码实现28PWM调速运行结果将程序编译链接,生成的可执行代码下载到核心板,L298N电机驱动板与核心板、电机按表3-35连接。开发板及电机电源上电,打开串口调试软件,设置好串口及通信波特率等参数。观察到的现象是:系统上电,电机初始状态是停转的,按下Key2按键,电机正转,再次按下Key2按键,电机停转。电机正转时,按下Key0按键(反转按键)电机停转。按下Key0按键,电机反转,再次按下Key0按键,电机停转。电机反转时,按下Key2按键(正转按键),电机停转。占空比的调节过程是:PWM波的占空比系统默认的初始值为50%,每按下Wk_Up按键1次,PWM波的占空比增大10%,电机转速明显加快,当PWM占空比增大到100%时,再次按下Wk_Up按键,占空比又回到50%。按下Key1按键,PWM波的占空比减小10%,电机转速变慢,当减小到0时,再次按下Key1按键,占空比又回到50%。串口输出的信息如图3-39所示。29PWM调速运行结果用示波器观察PWM波的占空比(PB6/PB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第1课时 小数的意义
- 2026组织类面试题目及答案
- 2026年一建市政实务考前仿真预测试卷及答案
- 2026年一建市政工程高频题型试卷及答案
- 2026年一建矿业实务考前标准预测卷试卷及答案
- 2026年一建经济考前核心考点通关试卷及答案
- 2026防腐公司面试题及答案
- 2026高校保姆面试题目及答案
- 2026关于洪水面试题目及答案
- 2026海外行政面试题及答案
- 2026年二季度中国经济观察报告
- GB/T 47335.1-2026中医药诊断词汇第1部分:舌象
- 2025年澳门大学第一轮面试题库及答案
- 诊所院内感染管理制度
- 《建筑法》培训教学课件
- 2026年中央一号文件解读:农村集体经营性建设用地入市规范
- 2026及未来5年中国锌合金行业市场全景评估及发展前景研判报告
- 无人机培训计划及方案
- 首台套申报培训课件
- 尾矿库闭库后的环境监测施工方案
- 2025国际胰腺病学会急性胰腺炎修订指南解读课件
评论
0/150
提交评论