OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 35|回复: 0

STM32F407IGT6 PB9无法输出PWM波

[复制链接]

78

主题

189

帖子

0

精华

高级会员

Rank: 4

积分
604
金钱
604
注册时间
2014-10-15
在线时间
139 小时
发表于 昨天 10:51 | 显示全部楼层 |阅读模式
1金钱
上程序
  1. #include "main.h"
  2. #include "Board.h"

  3. /* Private includes *******************************************************/

  4. /* Private macro **********************************************************/

  5. /* printf function configs to USART1*/
  6. #define DEBUG_USART  USART1

  7. #define DIV 83

  8. /* Private typedef ********************************************************/

  9. /* Private variables ******************************************************/

  10. /* Private function prototypes ********************************************/

  11. /* External variables *****************************************************/

  12. /* External functions *****************************************************/

  13. /*!
  14. * @brief       Main program
  15. *
  16. * [url=home.php?mod=space&uid=271674]@param[/url]       None
  17. *
  18. * @retval      None
  19. */
  20. int main(void)
  21. {
  22.     GPIO_Config_T GPIO_ConfigStruct;
  23.     TMR_BaseConfig_T TMR_TimeBaseStruct;
  24.     TMR_OCConfig_T OCcongigStruct;

  25.     RCM_EnableAPB1PeriphClock(RCM_APB1_PERIPH_TMR4);
  26.     RCM_EnableAHB1PeriphClock(RCM_AHB1_PERIPH_GPIOB);

  27.     /* TMR2_CH1 */
  28.     GPIO_ConfigPinAF(GPIOB, GPIO_PIN_SOURCE_0, GPIO_AF_TMR4);
  29.     /* TMR2_CH2 */
  30.     GPIO_ConfigPinAF(GPIOB, GPIO_PIN_SOURCE_1, GPIO_AF_TMR4);
  31.     /* TMR2_CH3 */
  32.     GPIO_ConfigPinAF(GPIOB, GPIO_PIN_SOURCE_2, GPIO_AF_TMR4);
  33.     /* TMR2_CH4 */
  34.     GPIO_ConfigPinAF(GPIOB, GPIO_PIN_SOURCE_3, GPIO_AF_TMR4);

  35.     /* Config TMR2 GPIO for output PWM */
  36.     GPIO_ConfigStruct.pin = GPIO_PIN_0|GPIO_PIN_1| GPIO_PIN_2| GPIO_PIN_9;
  37.     GPIO_ConfigStruct.mode = GPIO_MODE_AF;
  38.     GPIO_ConfigStruct.otype = GPIO_OTYPE_PP;
  39.     GPIO_ConfigStruct.speed = GPIO_SPEED_100MHz;
  40.     GPIO_Config(GPIOB, &GPIO_ConfigStruct);

  41.     /* config TMR2 */
  42.     TMR_TimeBaseStruct.clockDivision = TMR_CLOCK_DIV_1;
  43.     TMR_TimeBaseStruct.countMode = TMR_COUNTER_MODE_UP;
  44.     TMR_TimeBaseStruct.division = DIV;
  45.     TMR_TimeBaseStruct.period = 999;
  46.     TMR_ConfigTimeBase(TMR4, &TMR_TimeBaseStruct);

  47.     /* Configure channel1 */
  48.     TMR_ConfigOCStructInit(&OCcongigStruct);

  49.     OCcongigStruct.mode = TMR_OC_MODE_PWM1;
  50.     OCcongigStruct.outputState = TMR_OC_STATE_ENABLE;
  51.     OCcongigStruct.polarity = TMR_OC_POLARITY_HIGH;

  52.     OCcongigStruct.pulse = 800;
  53.     TMR_ConfigOC1(TMR4, &OCcongigStruct);
  54.     TMR_ConfigOC1Preload(TMR4, TMR_OC_PRELOAD_ENABLE);

  55.     /* Configure channel2 */
  56.     OCcongigStruct.pulse = 700;
  57.     TMR_ConfigOC2(TMR4, &OCcongigStruct);
  58.     TMR_ConfigOC2Preload(TMR4, TMR_OC_PRELOAD_ENABLE);

  59.     /* Configure channel3 */
  60.     OCcongigStruct.pulse = 600;
  61.     TMR_ConfigOC3(TMR4, &OCcongigStruct);
  62.     TMR_ConfigOC3Preload(TMR4, TMR_OC_PRELOAD_ENABLE);

  63.     /* Configure channel4 */
  64.     OCcongigStruct.pulse = 500;
  65.     TMR_ConfigOC4(TMR4, &OCcongigStruct);
  66.     TMR_ConfigOC4Preload(TMR4, TMR_OC_PRELOAD_ENABLE);

  67.     TMR_EnableAutoReload(TMR4);
  68.     TMR_Enable(TMR4);

  69.     while(1)
  70.     {
  71.     }
  72. }
复制代码
请问高手,如何解决?谢谢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-17 16:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表