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

STM32F0 如何输出非对称PWM波形

[复制链接]
阿雷啊 提问时间:2017-8-2 21:35 /
如题,STM32F0 如何输出非对称PWM波形。如何设置的? 请教高手。目前正在高单电阻电流采样的SVPWM控制。
收藏 1 评论3 发布时间:2017-8-2 21:35

举报

3个回答
samhong 回答时间:2017-8-10 22:07:43
论谈里没有攻城狮称自己是高手!!哥。
无薪税绵 回答时间:2017-10-17 10:23:11
本帖最后由 无薪税绵 于 2017-10-17 10:24 编辑

没有用过F0,网上搜索了一个,STM32f103c8的,不知道能不能参考一下。
  1. (1)定时器通道的管脚是定下的,不能随意改动.我现在用的是STM32f103c8,其它的查相应手册.
  2. 详细配置如下:TIM1_CH1->PA8; TIM1_CH2->PA9; TIM1_CH3->PA10; TIM1_CH4->PA11;
  3.              TIM2_CH1->PA0; TIM2_CH2->PA1; TIM2_CH3->PA2; TIM2_CH4->PA3;
  4.              TIM3_CH1->PA6; TIM3_CH2->PA7; TIM3_CH3->PB0; TIM3_CH4->PB1;
  5.              TIM4_CH1->PB6; TIM4_CH1->PB7; TIM4_CH1->PB8; TIM4_CH1->PB9;
  6. (2)不是所有的芯片都有重映像功能的,STM32f103c8这四个定时器就不需要重映像.

  7. (3)定时器输出需要设置向个模块:
  8.    1)相应时钟要使能,包括TIMx,GPIO(用到哪个可以开哪个,初学者也可以全开起,免得多事;
  9.    比如说:用TIM4
  10.          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  11.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  12.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
  13.   2)GPIO相应管脚模式设置
  14.          GPIO_InitTypeDef GPIO_InitStructure;
  15.          GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
  16.           GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  17.           GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
  18.           GPIO_Init(GPIOB,&GPIO_InitStructure);
  19.   3)定时器设置(下面的例子是产生4个通道的PWM)
  20. void TIM_Configuration(void)
  21. {
  22. TIM_TimeBaseInitTypeDef   TIM_TimeBaseStructure;
  23. TIM_OCInitTypeDef              TIM_OCInitStructure;

  24. TIM_DeInit(TIM4);

  25. TIM_TimeBaseStructure.TIM_Period=144;                 //ARR的值
  26. TIM_TimeBaseStructure.TIM_Prescaler=4000;
  27. TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; //采样分频
  28. TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
  29. TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0;
  30. TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
  31. TIM_ARRPreloadConfig(TIM4, ENABLE);//使能ARR预装载缓冲器

  32.         /* Channel 1 Configuration in PWM mode */
  33.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;                                 //PWM模式2
  34.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;         //正向通道有效
  35.         TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;//反向通道无效
  36.         TIM_OCInitStructure.TIM_Pulse = 120;                                                         //占空时间
  37.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;                 //输出极性
  38.         TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;     //互补端的极性  
  39.         TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
  40.         TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;  

  41.         TIM_OC1Init(TIM4,&TIM_OCInitStructure);                                                 //通道1

  42.         TIM_OCInitStructure.TIM_Pulse = 80;                                                         //占空时间
  43.         TIM_OC2Init(TIM4,&TIM_OCInitStructure);                                                 //通道2

  44.         TIM_OCInitStructure.TIM_Pulse = 40;                                                         //占空时间
  45.         TIM_OC3Init(TIM4,&TIM_OCInitStructure);                                                 //通道3

  46.         TIM_OCInitStructure.TIM_Pulse = 20;                                                         //占空时间
  47.         TIM_OC4Init(TIM4,&TIM_OCInitStructure);                                                 //通道4
  48.         

  49.         /* TIM1 counter enable */
  50.         TIM_Cmd(TIM4,ENABLE);
  51.         
  52.         /* TIM1 Main Output Enable */
  53.         TIM_CtrlPWMOutputs(TIM4,ENABLE);

  54. }
复制代码


还有两篇文章:http://blog.csdn.net/wind4study/article/details/44994609
http://blog.sina.com.cn/s/blog_4ac1eaae0101funl.html



评分

参与人数 1ST金币 +3 收起 理由
zero99 + 3

查看全部评分

zhjb1 回答时间:2017-10-17 16:07:26
用mbed工程实现过。很简单,只需要先将PWM周期固定后,输出的脉宽时间改变就可以实现任意的了。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

所属标签

相似问题

官网相关资源

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