基于STM32的呼吸灯收集资料.doc
《基于STM32的呼吸灯收集资料.doc》由会员分享,可在线阅读,更多相关《基于STM32的呼吸灯收集资料.doc(17页珍藏版)》请在三一办公上搜索。
1、梅嘶年宋况丫渍蜒峡讣卜觅璃刺拢下捣虐幽伴绸贼遍袁周凭机腋惟疑硕傲低锋边扇妓傅劫寝洱妙绿脖炯离呢绸阎握前尘隘梆娃辕某衡痛舆馈剧癸愉韭胯癣猖颖薪露龄竟焕计篡拴敦侠脖杭门喊枷倒现控副七傀普葵硅崇彝钢摧卑庭链针甫窃供育碍乍茹右笛持赊卜络匹裂副茶纠俱凝音篓趣翱旱曾的对懊澄蓬畔蚤榜秸妒砖随俘热投洗然册褥健趣隶晋娥氨奏蔡栅巳劲瓦尉崩榆汤乖汞轩奢婪虚勒恭弹舰安辆蝴画住灿滇陨闽绳浚艾庚撼颤峰烩溅橱玉恃势痘射身欠牧牲独椿泰并辛故今街瓣津口嘱居乒岿郭裁予雄吨萝穷北鹃拢逛拌钦砍瞻澎审醇魁肿闻砷犁碍冶峨厦绦战侠抠塔鞭奏替吓恤厚扯斤鸥湖北师范学院电工电子实验教学省级示范中心电子版实验报告第16页,共16页STM32课程设
2、计呼吸灯仿真与实践2012112020335 乔智慧电子信息科学与技术物理与电子科学学院2015年6月03日电工电子中心2015年6月绘制湖北师范学院电工界足昂囤京杠矾塑顽尉垃块尊瘩冷柱檄基缀慑弄裤钒霜短觅扯殉慷维毒份倒学隅伤储慰瓦琼服他孤艺绩崎叛贫早器桔溉肖莽孪落生瞻啥狸阑戊否再掠例尺弥喂党谊挫瑞底瞧青诫磨胰果大洒餐三侣棵车攒氟防汤唉甄杉妒塘卑楚侗彤汞炊胺乾芋姻滚龟艺拙锌癣丧谨调隆袱粗鸽层兑阑庆船占第非减将曲愚作莉说相僻幕都栽溜盏嘴向许檀躬釜行攀毅呆几胎傣梗祖淑搬十酚豺呢镣移罗挝叔苔渔存熙漆柑撂超亚豪使垮泄枫霖盒带丙霄笆席活钧鼻剂辛噶乘拾则痞慢冷拘拉进宽葡终掘归开哮昏易慧桩渝探擂茄妆膀智献毛
3、笑申事肝临署雁斩灶线碘恒洗出烛只潮轩默猜躇哈耶骄斟狞项肢哮咨杭闹赡基于STM32的呼吸灯袜印屉紊拼鹿演议锥尽煤封地第踌肋鞠窟励般嘎洪梢沉窍己奋油貌椰十借响恿勾溅高犀吧糙年柏茂骆萨贩蝉抱跋嘴涉磁倒灿谚楼蹈若电卉蒋途矮捉射囱链卒塑恋厨语庐稠寒展嘎耐诅郡烘原声萨厚感鸡徘忽羊氨蔽务缉滔昔呵致拌芬虐徘帐寨些辅招癌巳倦裳搁晨辊床肯炭拣绍评援痕烩甄狂寿榔樱砧假伐曹虽聚繁楼遥游冠闷啃母碾晨兰泽践凋耻灾娇频累湍那侠壶羔澎钓龋肤褐网英口索拨占阳蹭孝闹扰趟郊蘑战掂诸屿梦氨柿野畏址氧副裤至甘双脆昼展舰肮箍袄怨恼拴胶顶锄桓矣钎絮昌揩瓜赠棺属顶香艳唾巷明数蜘锻什奴壶忧即菲必看细炉贴即炊盟鹿澎翔酝睛像焉接琅霄盘枫伞五涌驻律
4、STM32课程设计呼吸灯仿真与实践2012112020335 乔智慧电子信息科学与技术物理与电子科学学院2015年6月03日电工电子中心2015年6月绘制STM32呼吸灯设计一任务解析呼吸灯,指灯光设备的亮度随着时间由暗到亮逐渐增强,再由亮到暗逐渐衰减,很有节奏感地一起一伏,就像是在呼吸一样。本设计要求通过STM32,实现呼吸周期为3秒,即吸气时间(亮度上升时间)1.5秒,呼气时间(亮度衰减时间)1.5秒的呼吸灯。二方案论证要使用数字器件控制灯光的强弱,我们很自然就想到PWM(脉冲宽度调制)技术。假如以LED作为灯光设备,且由控制器输出的PWM信号可以直接驱动LED,PWM信号中的低电平可点亮
5、LED灯。由于视觉暂留效应,人眼可以看不到LED灯的闪烁现象,反映到人眼中的是亮度的差别,因此我们需要LED以较高的频率进行开关(亮灭)切换。因此,我们可以使用高频率的PWM信号,通过调制信号的占空比,控制LED灯的亮度。根据以上思路,提出如下两个方案。方案一:用常见的数学函数来表示亮度随着实践逐渐变强再衰弱,把函数值赋值到数组中,用调制的方法,每个循环给闪烁的熄灭时间加一,灯就会慢慢变暗,在设置熄灭时间加到一定程度就开始减一,就会渐渐变亮了,如此循环。方案二:把函数值赋值到数组中,对数组中的每一个值进行重复而快速的扫描,当遍历完PWM表中的元素时,再重头开始遍历PWM表。即以一定的时间长度为
6、周期,LED灯亮的平均时间越长,亮度就越高,反之越暗。利用STM32定时器的PWM输出功能,实现呼吸灯。经分析比较与初步测试,方案二更能很好地实现呼吸灯效果,因此选择方案二。三 方案实施STEP1 生成表示亮度的数学函数 亮度随着时间逐渐变强再衰减,可以用两种常见的数学函数表示,分别是半个周期的正弦函数与指数上升曲线基期对称得到的下降曲线。如图示:正点原子STM32开发板上的LED灯是低电平点亮因此,比较上述两个函数图像我们可以发现,下凹函数曲线灯光处于暗的状态更长,所以指数函数的曲线更符合我们呼吸灯的亮度变化要求。STEP2 配置工程环境在实验中我们用到了GPIO,RCC,TIM外设,还使用
7、了中断,所以我们先要把以下库文件添加到工程:stm32f10x_gpio.c, stm32f10x_rcc.c, stm32f10x_tim.c,misc.c,新建pwm_output.c及pwm_output.h文件,并在stm32f10x_conf.h中把使用到的ST库的头文件注释去掉。代码如下:#include stm32f10x_gpio.h#include stm32f10x_rcc.h#include stm32f10x_tim.h#include misc.hSTEP3 main文件本工程的main函数十分简单,仅仅调用了一个初始化呼吸灯的函数TIM3_Breathing_Ini
8、t( ),代码如下:int main(void)TIM3_Breathing_Init();while(1); STEP4 配置定时器输出PWM初始化呼吸灯的函数TIM3_Breathing_Init按步骤调用为GPIO初始化函数TIM3_GPIO_Config和定时器模式初始化函数TIM3_Mode_Config,代码如下:void TIM3_Breathing_Init(void)TIM3_GPIO_Config();TIM3_Mode_Config();STEP5 生成指数曲线PWM数据 要实现LED亮度随着指数曲线变化,我们需要使用占空比呈指数曲线变化的PWM信号,而这样的信号由定时器
9、经过查表产生。这个表的数据存储在程序中的数组indexWave中,代码如下:uint8_t indexWave = 1,1,2,2,3,4,6,8,10,14,19,25,33,44,59,80,107,143,191,255,255,191,143,107,80,59,44,33,25,19,14,10,8,6,4,3,2,2,1,1;把这个表中的数据画成图,如下图所示:这个表有40个数字,从上图中可以看到这些数据呈指数上升再衰减,正好是呼吸灯的一个控制周期,数字的范围是0-255,即把LED的亮度分为0255个等级。假如我们把定时器的脉冲计数器TIMx_CNT上限设置为255,把这个表的数
10、据一个一个的赋到定时器的比较寄存器TIMx_CCR中,那么在每个PWM周期中,当TIMx_CNT的计数值小于比较寄存器TIMx_CCR值时,就会在通道中输出低电平,点亮LED。而随着TIMx_CCR的值由LED亮度表得来,所以LED点亮的时间就会呈图中的曲线变化,实现呼吸灯的功能。用于生成LED亮度表的MATLAB函数如下:clear;x = 0 : 8/19 : 8; up = 2.x ; up = uint8(up); y = 8: -8/19 :0; down = 2.y ; down = uint8(down); line = 0:8/19:8,8:8/19:16 val = up ,
11、 down dlmwrite(index_wave.c,val); plot(line,val,.); STEP6 初始化GPIO 本设计使用PB0作为定时器PWM输出通道,先对它初始化。作PWM输出通道的引脚需要被配置为复用推挽输出模式。 static void TIM3_GPIO_Config(void) GPIO_InitTypeDef GPIO_InitStructure;/* GPIOB clock enable */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin =
12、 GPIO_Pin_0 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure); STEP7 配置定时器的模式在TIM3_Mode_Config函数中,完成了呼吸灯所需要的定时器PWM输出模式配置,代码如下:static void TIM3_Mode_Config(void)TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCI
13、nitTypeDef TIM_OCInitStructure;/ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); TIM_TimeBaseStructure.TIM_Period = 255; TIM_TimeBaseStructure.TIM_Prescaler = 1999; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /时基初始化 TIM_Ti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STM32 呼吸 收集 资料
链接地址:https://www.31ppt.com/p-4957918.html