打印
[应用相关]

帮忙看看G030 TIM3可以输出PWM而TIM17不能输出。

[复制链接]
737|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
GZZXB|  楼主 | 2019-12-26 09:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Src.rar (12.15 KB)
工程用stm32cubemx生成
/* USER CODE BEGIN 2 */
  //HAL_TIM_PWM_Start(&htim17,TIM_CHANNEL_1);  //开启pwm输出
  //TIM_CCxNChannelCmd(&htim17,TIM_CHANNEL_1,TIM_CCxN_ENABLE);  //
  HAL_TIMEx_PWMN_Start(&htim17,TIM_CHANNEL_1);
  HAL_TIM_Base_Start(&htim17);   

  //打开定时器
  HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_2);  //开启pwm输出
  HAL_TIM_Base_Start_IT(&htim3);            //打开中断
  /* USER CODE END 2 */


用tim和tim_ex中的API 都无法让tim17输出pwm。

使用特权

评论回复
沙发
GZZXB|  楼主 | 2019-12-26 14:13 | 只看该作者

使用特权

评论回复
板凳
香水城| | 2019-12-27 17:37 | 只看该作者
  MX_GPIO_Init();
  MX_TIM3_Init();
  MX_TIM17_Init();
  /* USER CODE BEGIN 2 */
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim17, TIM_CHANNEL_1);
HAL_TIMEx_PWMN_Start(&htim17, TIM_CHANNEL_1);

我测试没有问题啊。

使用特权

评论回复
地板
GZZXB|  楼主 | 2019-12-27 20:45 | 只看该作者
香水城 发表于 2019-12-27 17:37
MX_GPIO_Init();
  MX_TIM3_Init();
  MX_TIM17_Init();

谢谢,对相同的TIM17看你用了不同文件的API:
HAL_TIM_PWM_Start(&htim17, TIM_CHANNEL_1);
HAL_TIMEx_PWMN_Start(&htim17, TIM_CHANNEL_1);

PWMN 一定要用TIMEx中的API吗?  定时器哪些特性需要用ex中的API? 有相关资料介绍HAL库每个文件的不同点的吗?

使用特权

评论回复
5
香水城| | 2019-12-27 22:45 | 只看该作者
GZZXB 发表于 2019-12-27 20:45
谢谢,对相同的TIM17看你用了不同文件的API:
HAL_TIM_PWM_Start(&htim17, TIM_CHANNEL_1);
HAL_TIMEx_PW ...

PWMN不是一定要调用那个API,但是你一定配置那个API里涉及到的控制寄存器。

至于哪些找EX文件里的API,没特别总结,反正通用外设驱动文件里找不到时就到EX类型文件看看。
如果还没有,自己操刀改写寄存器无妨。我平常就是这样弄的。

使用特权

评论回复
6
zjq985062714| | 2019-12-28 19:00 | 只看该作者
香水城 发表于 2019-12-27 22:45
PWMN不是一定要调用那个API,但是你一定配置那个API里涉及到的控制寄存器。

至于哪些找EX文件里的API, ...

是不是pin脚那里的Mode选错了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

96

主题

331

帖子

10

粉丝