




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
STM32 高级定时器-PWM简单使用(转)2010-07-10 16:19高级定时器与通用定时器比较类似,下面是一个TIM1 的PWM 程序,TIM1是STM32唯一的高级定时器。共有4个通道有 死区有互补。 先是配置IO脚: GPIO_InitTypeDef GPIO_InitStructure; /* PA8设置为功能脚(PWM) */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /*PB13 设置为PWM的反极性输出*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure);/*开时钟PWM的 与GPIO的*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);/*配置TIM1*/ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure;void Tim1_Configuration(void) TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; TIM_DeInit(TIM1); /重设为缺省值/*TIM1时钟配置*/TIM_TimeBaseStructure.TIM_Prescaler = 4000;/预分频(时钟分频)72M/4000=18KTIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;/向上计数TIM_TimeBaseStructure.TIM_Period = 144; /装载值 18k/144=125hz 就是说向上加的144便满了TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;/设置了时钟分割 不懂得不管TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0;/周期计数器值 不懂得不管TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure); /初始化TIMx的时间基数单位/* Channel 1 Configuration in PWM mode 通道一的PWM */TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; /PWM模式2TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; /正向通道有效 PA8 TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; /反向通道也有效 PB13TIM_OCInitStructure.TIM_Pulse = 40; /占空时间 144 中有40的时间为高,互补的输出正好相反TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; /输出极性TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low; /互补端的极性 TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset; /空闲状态下的非工作状态 不管TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset; /先不管TIM_OC1Init(TIM1,&TIM_OCInitStructure); /数初始化外设TIMx通道1这里2.0库为TIM_OCInit/* TIM1 counter enable开定时器 */TIM_Cmd(TIM1,ENABLE); /* TIM1 Main Output Enable 使能TIM1外设的主输出*/TIM_CtrlPWMOutputs(TIM1,ENABLE);/设置捕获寄存器1void SetT1Pwm1(u16 pulse)TIM1-CCR1=pulse;/*操作寄存器改变占空时间*/*TIM1的定时器通道时间 1到4 分别为 PB8 PA9 PA10 PA11 而互补输出分别为 PB13 PB14 PB15 中止 PB12 。如果输出与互补输出极性相同的话 就刚好输出高 互补低 至于PWM模式1 与模式2的区别在下图:这个是模式1的 了绿为输出 黄为互补*上图是模式2的情况 正好和模式1的反过来了 144中有40 为高 互补的有40为低。*/在MAIN 中加点键盘扫描啥的 用来改变占空比/* *实验名称:PWM *功能:是PA8产生PWM输出,PA8为驱动LED1和马达的IO, 通过UP DOWN键,可以改变占空比,从而让ED1和小马达的产生变化 *注意事项:LED是低有效,马达则是高有效,所以LED全灭的时候马达转速达到最高. *作者:电子白菜 */#include STM32Libstm32f10x.h #include hal.hextern void SetT1Pwm1(u16 pulse);int main(void)u16 pulse=40;ChipHalInit();/片内硬件初始化Chip
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年滁州明光市消防救援大队招聘政府专职消防员15人考前自测高频考点模拟试题附答案详解
- GP369-生命科学试剂-MCE
- 安全培训效果评价内容课件
- 安全培训效果简述及评价课件
- 2025届特发集团春季校园招聘模拟试卷含答案详解
- 服装纺织行业供应链升级方案
- 2025年绥化市庆安县急需紧缺教师校园招聘36人考前自测高频考点模拟试题及答案详解(历年真题)
- 安全培训效果存在问题课件
- 2025年抚松县面向普通高等院校公开招聘高中教师(9人)考前自测高频考点模拟试题及答案详解(有一套)
- IT设备采购及维护标准化手册提升IT管理效率
- 各种饮料课件
- 烹饪之路:技艺与创新
- 【MOOC】中西文化鉴赏-郑州大学 中国大学慕课MOOC答案
- 建筑工程临水临电施工方案
- 设备操作员岗位培训
- 标识牌的制作与安装方案
- 拍毛挂网施工合同(2篇)
- 2024安全风险分级管控管理制度
- 2024年西安交通大学中国民族钢琴艺术鉴赏智慧树知到期末考试答案章节答案(自用更新版)
- 机器损坏赔偿协议书的模板
- 林下经济的开发与利用
评论
0/150
提交评论