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

查看: 14546|回复: 17

[STM32L476] [NUCLEO-L476RG开发] 配置STM32CubeMx生成六路互补pwm波程序

[复制链接]

3

主题

79

回帖

0

蝴蝶豆

中级会员

最后登录
2016-3-24
发表于 2015-11-23 21:39:13 | 显示全部楼层 |阅读模式
在此,感谢与非网送的板子!!!

直接进入主题:

1.首先配置引脚.
     双击TIM1,就会显出默认配置引脚。如果需要修改,可以查看datasheet,在对应的管脚位上双击,选择切换。
捕获1.PNG
2.配置时钟.
我是用内部HSI,倍频获得最高系统主频80M.

捕获2.PNG

3.配置定时器Tim1

中心对称模式2
pwm频率16K(80M/16k/2-1=2499)
Dead Time 80  (就是1us,查看死区寄存器,按公式计算)
三路互补pwm输出
捕获3.PNG

4.配置工程

捕获4.PNG
以上页面中红框1表示每个外设单独生成一个.c和.h文件,这样层次更明确。红框2中表示把其余不用的pin脚都设置为模拟输入以降低功耗,也选上。


生成工程后会自动生成4个文件夹。其中Drivers就是硬件抽象层,类似于以前的库,都以“hal”结尾。inc和src分别是生成的头文件和包含文件。Projects是工程快捷方式。

5.
添加代码,输出波形。

  /* USER CODE BEGIN 2 */
  HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3);
    HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);
    HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_2);
    HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_3);
   
  /* USER CODE END 2 */


再调出波形之前,一直在心里骂这个CubeMX,竟然找不到配置选项直接输出pwm波。
到stm32l4xx_hal_tim.c 里找到HAL_TIM_PWM_Start 这个函数输出正极pwm,却输不出互补波形。
最后,找了老半天才到stm32l4xx_hal_tim_ex.c找到了HAL_TIMEx_PWMN_Start,这才终于输出互补波形。

提问:
1.CubeMX可以直接配置输出吗?反正我找不到。
2.stm32l4xx_hal_tim_ex.c 和 stm32l4xx_hal_tim.c,整这两处什么个缘由?

结束!欢迎指教!!!
Six_Complementary_Pwm.rar (7.63 MB, 下载次数: 5289)

评分

参与人数 1ST金币 +20 收起 理由
沐紫 + 20

查看全部评分

<
回复

使用道具 举报

18

主题

668

回帖

0

蝴蝶豆

金牌会员

最后登录
2017-4-9
发表于 2015-11-23 22:37:10 | 显示全部楼层
有点像刘发*  
回复 支持 反对

使用道具 举报

3

主题

79

回帖

0

蝴蝶豆

中级会员

最后登录
2016-3-24
 楼主| 发表于 2015-11-23 23:06:24 | 显示全部楼层
自己顶一个!!!!!!
回复 支持 反对

使用道具 举报

47

主题

3404

回帖

30

蝴蝶豆

版主

最后登录
2020-12-7
发表于 2015-11-24 08:05:46 | 显示全部楼层
呵呵不错。。。。
1.CubeMX可以直接配置输出吗?
没有,都需要软件开启,才能输出。。标准库里也是一样。。。
2.stm32l4xx_hal_tim_ex.c 和 stm32l4xx_hal_tim.c,整这两处什么个缘由?
你好好看看,HAL库的结构。。_tim_ex.c结尾是扩展库函数文件,_tim.c是普通的库函数。在HAL库里是分2个的。。

回复 支持 反对

使用道具 举报

10

主题

379

回帖

0

蝴蝶豆

高级会员

最后登录
1970-1-1
发表于 2015-11-24 09:13:03 | 显示全部楼层
Paderboy 发表于 2015-11-24 08:05
呵呵不错。。。。
1.CubeMX可以直接配置输出吗?
没有,都需要软件开启,才能输出。。标准库里也是一样。。 ...

地板正解
回复 支持 反对

使用道具 举报

3

主题

79

回帖

0

蝴蝶豆

中级会员

最后登录
2016-3-24
 楼主| 发表于 2015-11-24 09:27:43 | 显示全部楼层
本帖最后由 sailor.wu 于 2015-11-24 09:35 编辑
Paderboy 发表于 2015-11-24 08:05
呵呵不错。。。。
1.CubeMX可以直接配置输出吗?
没有,都需要软件开启,才能输出。。标准库里也是一样。。 ...

捕获1.PNG 捕获2.PNG

回复 支持 反对

使用道具 举报

1

主题

902

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-12-7
发表于 2015-11-24 13:06:27 | 显示全部楼层

1.CubeMX可以直接配置输出吗?反正我找不到。
答:您指的这个输出是出书工程还是?比如说输出keil5的工程或者怎样。
2.stm32l4xx_hal_tim_ex.c 和 stm32l4xx_hal_tim.c,整这两处什么个缘由?
答:这个是标准的hal的库文件,stm32l4xx_hal_tim_ex.c这个的ex的扩展的意思。如果可以的话,您可以对两个文件进行文本对比就知道了。
回复 支持 反对

使用道具 举报

1

主题

17

回帖

0

蝴蝶豆

高级会员

最后登录
2020-12-4
发表于 2016-3-3 13:32:54 | 显示全部楼层
  /* USER CODE BEGIN 2 */
  HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3);
    HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);
    HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_2);
    HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_3);
   
  /* USER CODE END 2 */


初用CUBE的人都会骂这一点的,真不明白初始为什么不加上去
回复 支持 反对

使用道具 举报

31

主题

393

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-2-28
发表于 2016-7-21 18:14:11 | 显示全部楼层
楼主,你好,我现在做stm32L476用定时器2产生PWM,用寄存器配置的,但是不知道为什么输出始终是高电平,麻烦楼主帮忙看看到底哪里错了,代码请见连接https://www.stmcu.org.cn/module/forum/thread-606936-1-1.html  谢谢楼主!
回复 支持 反对

使用道具 举报

1

主题

5

回帖

0

蝴蝶豆

初级会员

最后登录
2017-4-28
发表于 2017-4-10 09:37:37 | 显示全部楼层
这个能驱动开关磁阻电机么
回复 支持 反对

使用道具 举报

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