栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

PWM驱动

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PWM驱动

时钟初始化请参考上节内容。

一 初始化配置

TIM_OCxInit(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);

(配置输出比较模块)

TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct);(此函数是给输出比较结构体赋一个默认值)

二 小功能

TIM_ForcedOC1Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction);

(配置强制输出模式 输出比较不管用了)

TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);

(配置ccr寄存器的预装载功能)

TIM_OC1FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast);

(用来配置快速使能,在单模冲模式小节中有介绍)

TIM_ClearOC1Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear);

(在外部事件时清除ref信号中有介绍)

三 单独数据更改

TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity);
 TIM_OC1NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity);

(单独修改输出比较极性,带N的是高级定时器的互补配置,OC4没有互补通道)

TIM_CCxCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx);
void TIM_CCxNCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN);

(单独修改输出使能参数)

TIM_SelectOCxM(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode);

(选择输出比较模式)

TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1);

(单独更改CCR寄存器值的函数)

四  数据填入

在配置频率和占空比中所用公式

频率  Freq == CK__PSC/(PSC+1)/(ARR+1)

占空比 Duty == CCR/(ARR+1)

分辨率 Reso == 1/(ARR+1)

五  GPIO的重映射

GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);

 

 另外 有部分重映射和全映射,要分清楚。

重映射关系请查看 STM32f10x中文参考手册8.3复用功能i/o口调试配置。

注意:在有的I/O口是有复用功能的,在重映射之后需要关闭其服用功能。

用函数GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);

其中有三个可选参数:GPIO_Remap_SWJ_NoJTRST     
                              *     @arg GPIO_Remap_SWJ_JTAGDisable 
                              *     @arg GPIO_Remap_SWJ_Disable  

第一个参数是关闭noJTRST

第二个关闭 JTAG的

第三个是关闭 SW和JTAG的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/953810.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号