OpenEdv-开源电子网

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

用STM32F407自己做了一个PWM输出的小板子,现在想用STM32H7做一个PWM输出的电路板。在硬件电路上面有这两款芯片有什么区别吗....

[复制链接]

7

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2017-11-20
在线时间
17 小时
发表于 2018-6-25 11:44:15 | 显示全部楼层 |阅读模式
5金钱
用STM32F407自己做了一个PWM输出的小板子,能正常输出。现在想用STM32H7做一个PWM输出的电路板。在硬件电路上面有这两款芯片有什么区别吗?

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

使用道具 举报

2

主题

25

帖子

0

精华

高级会员

Rank: 4

积分
568
金钱
568
注册时间
2013-9-25
在线时间
93 小时
发表于 2018-6-25 12:40:09 | 显示全部楼层
    用h7干这个是不是太浪费了点啊
回复

使用道具 举报

7

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2017-11-20
在线时间
17 小时
 楼主| 发表于 2018-6-25 15:59:35 | 显示全部楼层
sabaka 发表于 2018-6-25 12:40
用h7干这个是不是太浪费了点啊

不浪费,需要用到,很重要,就是需要用H7
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2018-11-10
在线时间
3 小时
发表于 2018-11-10 10:55:51 | 显示全部楼层
本帖最后由 高山流水a 于 2018-11-13 00:05 编辑

以前用的AVR速度跟不上成为了我的研究瓶颈,因为如楼主一样很重要的需要STM32单片机进行PWM的编程,我10月25日初接触STM32单片机,最初STM32F103,时钟72M,花了5天学习,从原子论坛上下了一个别人调试成功的寄存器版PWM六路互补输出成功,但是速度还是显得捉襟见肘,必须得更高时钟的芯片,于是又买了F767与H743,由于初学此单片机,发现跨度是明显的,不经过细致的学习对比研究没法正常跨越,日以继夜的折腾了好多天获得的只是绝望,没办法成功,在网上下载了很多例程,没有真正对应调试成功的代码,只能自己参照改写都没办法成功,用原子的例子8PWM输出均难以成功,最终没办法就请了几天假在家专门研究。且在网上下了一个STM32F407的例程来改,3天过去了,让人非常的痛苦始终不能成功。所以楼主问F4与F7差异大不大,现实就这么大,别人在F103,F407等用着好好的,而在F7,H7上压根运行比登天还难。前几天也来到本贴真希望有人回复附上成功例子,但是天上没有掉馅饼。
昨晚准备放弃了,但在此时终究还想抓一根稻草。想着原子的例程8——PWM——TMI3能输出PB1,那么就继续以这个为起点去抽丝剥茧,怎么抽?

由于例子中头文件,调用等然让人眼花缭乱,压根找不到北,所以就从剔除头文件及不必要的关联调用文件开始。
剔除了led.c,led.h,timer.h,(启动文件,delay.c,sys.c,usart.c都不用去管),只剩下与PWM直接相关联的两个文件test.c,timer.c,删除的头文件必须的代码等均整合进timer.c.
整合过程中调整查找对应的参考手册,数据手册,用搜索功能查询每一个寄存器,删除每一个代码过程运行后就下载到开发板,看程序是否能正常运行,这样一个个的代码调整后,最终提取出了无复杂调用纯净的TIM3 PWM程序,在此纯净程序上对着手册寄存器一一对应改相应的定时器通道,I/0通道,复用等功能等等,最终就成功实现了TIM1六路互补PWM输出,其他定时器通道依样画葫芦一通皆通。
通过这个过程,突然发现自己对STM32系列的PWM编程任督二脉打通了,能举一反三,对STM32系列从F103,F407,F767,H743等的PWM都通过此法很轻松跨越实现了。最终均能实现SPWM正弦波输出。
其实真正的学习过程就得经历这样的过程才能实现真正的提升自己。

上述突破的方法希望对楼主有用,对其他需要的人也可以参考。

这就是我接触STM32 15天来的辛酸历程。

同时库函数版,很多人说使用简单,建议初学者从库函数版本开始学,但是从这15天来,我对函数版本一看就产生恐惧症,完全就是化简为繁,复杂臃肿,寄存器版本几行代码就能实现的,函数版本居然要几十行代码,代码量增加几倍上十倍,且无法正常让人理解其表达的含义,所以初学者个人建议从寄存器版本开始学。很多人推崇的STM32CubeMX这个工具更是让人抓狂,代码复杂不易懂且代码数量惊人。

2018.11.10
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-11-10 11:51:38 | 显示全部楼层
高山流水a 发表于 2018-11-10 10:55
以前用的AVR速度跟不上成为了我的研究瓶颈,因为如楼主一样很重要的需要STM32单片机进行PWM的编程,我10月2 ...

原子的代码是循序渐进的,谁让你直接上来了就到PWM这块了
再说库函数只是方便你初始化外设的
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

18

主题

323

帖子

1

精华

高级会员

Rank: 4

积分
935
金钱
935
注册时间
2017-12-11
在线时间
196 小时
发表于 2018-11-10 13:26:30 来自手机 | 显示全部楼层
本帖最后由 wlq390934605 于 2018-11-10 13:28 编辑

还没学走,就学跑,结果只有浪费更多的时间,成N倍增长, 一旦问题难度增长, 更是 N x N倍
回复

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6505
金钱
6505
注册时间
2018-6-27
在线时间
549 小时
发表于 2018-11-10 13:49:27 | 显示全部楼层
学习学习,学习学习。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2018-11-10
在线时间
3 小时
发表于 2018-11-10 17:23:22 | 显示全部楼层
六路互补功能编写成功,测试效果非常好,后续工程编写的最大障碍扫除了,以前用的低速单片机速度瓶颈也就不存在了,H743有400Mhz的频率已经绰绰有余了。非常感谢原子哥的辛苦付出,原子的程序涵盖面广比较丰富,让新手能快速入门,开发板做得也非常牛13,当然对我们这种最初接触STM32的人来说,没有原子哥的程序例子的引领真的让我在极短的时间内突破问题是不可能的,为了解决问题,原子哥的STM32的书也都买了很多本,但是工程时间有限,一点点的看,渗透,例子一个的全学完真的时间办不到,我的学习方法也许正是有的人说的没有学会走就要飞吧,但是学习方法的确很重要,方法对了可以事半功倍而不是成N倍的浪费时间。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 18:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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