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

占空比细分

[复制链接]
ttl_web 提问时间: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

查看全部评分

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

评分

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

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版