你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

占空比细分

[复制链接]
陆少杰 提问时间:2019-4-6 12:43 /
本帖最后由 ttl_web 于 2019-4-6 12:47 编辑
  1. void PWM_TIM3_init(void)
  2. {
  3.         GPIO_InitTypeDef g;
  4.         TIM_TimeBaseInitTypeDef t;
  5.         TIM_OCInitTypeDef o;
  6.         
  7.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
  8.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |
  9.                 RCC_APB2Periph_AFIO,ENABLE);
  10.         
  11.         g.GPIO_Pin = GPIO_Pin_5;
  12.         g.GPIO_Mode = GPIO_Mode_AF_PP;
  13.         g.GPIO_Speed = GPIO_Speed_50MHz;
  14.         GPIO_Init(GPIOB,&g);
  15.         
  16.         GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);
  17.         
  18.         t.TIM_Period = 200-1;
  19.         t.TIM_Prescaler = 7200-1;
  20.         t.TIM_ClockDivision = TIM_CKD_DIV4;
  21.         t.TIM_CounterMode = TIM_CounterMode_Up;
  22.         TIM_TimeBaseInit(TIM3,&t);
  23.         
  24.         o.TIM_OCPolarity = TIM_OCPolarity_High; // 起始为高电平
  25.         o.TIM_OCMode = TIM_OCMode_PWM1;  // 当计数器小于设定时输出有效高电平
  26.         o.TIM_OutputState = TIM_OutputState_Enable;
  27.         TIM_OC2Init(TIM3,&o);
  28.         
  29.         TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);
  30.         TIM_Cmd(TIM3,ENABLE);
  31. }
复制代码
以上可以产生周期为20ms的PWM,以下可以产生2ms高电平。通过采样,实际波形正确。
  1. u16 val = 20; //如果是10,就产生1ms高电平
  2. TIM_SetCompare2(TIM3,val);
复制代码
实际需要对 1-2ms 的高电平进行细分,但以下代码只能分 10 格,
有没有方法进一步细分,比如100格或更大。
谢谢提点!!

STM32F103V

收藏 1 评论3 发布时间:2019-4-6 12:43

举报

3个回答
wenyangzeng 回答时间:2019-4-6 13:19:05
将t.TIM_Prescaler缩小10倍,
配合修改t.TIM_Period的值
和t.TIM_ClockDivision的分频比
应该可以达到要求

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

STM1024 回答时间:2019-4-7 17:17:30
本帖最后由 stm1024 于 2019-5-7 22:02 编辑

还有一种思路是考虑使用Systick,理论上来说,Systick的时间片应该是单片机的最小单位了,如果Systick都不行,外设肯定是不行的,除非有专用芯片。当然,还有一种野路子是通过配置PLL强行让MCU超频运行,也有可能提升进一步提升周期和占空比,不过意义不是很大,且对MCU稳定运行也存在潜在影响。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

巨匠PLC.吴国锦 回答时间:2019-4-8 14:29:39
这个应该没难度吧,
把T的计时时钟放小就可以了,如以1uS为时钟,1000uS一个周期,可进行1/1000细分调整呢

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版