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

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扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版