历史上的今天
今天是:2024年11月26日(星期二)
2020年11月26日 | 一个完整的STM32工程到底由哪些文件组成
2020-11-26 来源:eefocus
这个我必须总结清楚,就像之前总结无人机的飞控算法一样,你可以把各个STM32书里面的工程文件拿来总结。找出通用的模式。灵活运用,能灵活改动。
我觉得基本的应该是标准库文件+的应用层代码。
其实本质还是一堆C文件,互相引用,那些文件夹应该只是方便整理归类那些C文件,不要那些文件夹应该也是可以的。
这是野火的STM32工程组成


《STM32单片机应用与全案例实践》里的
这个应该是讲得非常清晰了的。



这是平衡小车之家的平衡车的程序框架,SYSYTEM这个文件夹其实是正点原子弄的(这个正点原子的书上有说,他们专门弄个SYSTEM文件夹放着就是几个不同例程都要通用的C文件,可以就直接当作用户写的C文件,里面是一些函数,都是应用层的应该),可能他们是基于正点原子的框架写的。


STM32Cube生成的工程模板,感觉和野火的差不多,包括CMSIS driver ,这两个应该是官方提供的, 然后user是自己写的。MDK-ARM那个文件夹其实是放的启动文件,就那一个文件,每个工程必须有的,每个工程最开始执行的都是启动文件,一段汇编,因为一开始是执行不了C代码的。
这些原理真正弄懂了你新建STM32工程的时候就不需要死记有这么一个s文件。
CMSIS driver 和.s启动文件都是在STM32的固件库里面已经包含提供了的。
截图自华清的课


正点原子的说明(正点原子说明它的工程组成放在了它的第一个外设实例里面,而没有放在前面,这也是怪不得之前没看到,现在才看到,无意中看到的)
截图自《原子教你玩STM32库函数版》第二版


明白了STM32工程文件的组成之后,其实我更换芯片,只需要更换STM32提供的那部分程序就可以了(CMSIS,driver,启动文件),自己写的逻辑代码不用换,只需要把调用的API函数改改就可以了,我看看他们飞控不是有的32有的TI,还有我们打智能车用飞思卡尔发的,程序上的迁移,你把原理弄懂了应该不难。所以不用觉得他们很牛逼什么的。
这样就真正把一个东西玩活了,我再玩其他单片机芯片也OK,这样真正弄懂融会贯通的感觉很好,我觉得我会越来越喜欢上的。
上一篇:STM32的启动文件
史海拾趣
|
本人做工程师时用过多种USB转串口的数据线成品,发现唯有这款数据线才可以适应STC单片机的ISP下载。当时问得STC上海公司(在科技京城)有卖,不仅售价50元,而且不接受邮购,最后只好自己跑一趟去STC公司买。 所以,找了一批这种型 ...… 查看全部问答> |
|
求助: 如何模拟电话摘机?最近在做电话远程控制的内容,可是不知道如何模拟电话摘机?特别是电话模拟摘机后的回路怎么样呢? 查了很多资料,发现大家的都不一样,不知道怎么设计? 还有,只是知道摘机电流是30mA,可是单片机如何知道摘机成功呢 ...… 查看全部问答> |
|
2009年年底安徽商报发表了一篇题为《安防示范城电子眼成了“睁眼瞎”》的报道。安徽潜山县近期发生了这样一个事情:潜山县梅城镇的赵潘节骑自行车回家途中,被一辆小货车撞倒在地,肇事车辆迅速向县城方向逃逸。然而,警方查看了全县的监控录像,却 ...… 查看全部问答> |
|
台湾新茂(SyncMOS)与爱特梅尔(ATMEL) 8051内核单片机替换 台湾新茂(SyncMOS)与爱特梅尔(ATMEL)8051内核单片机替换表SM8952AC40PP/JP/QP=AT89S52-24PU/JP/AUSM8958AC40PP/JP=AT89C55WD-24PU/JPSM894051C25PP/SP=AT89C2051-24PU/SUSM894051C25PP/SP=AT89C4051-24PU/SU深圳市鼎尚电子有限公司,新茂大陆代理商 ...… 查看全部问答> |
|
【求】高手帮忙画个NEC720114做USB hub的电路图 【求】高手帮忙画个NEC720114做USB hub的电路图 因为我觉得这个IC比较稳定吧,所以希望坛子里面有用过这个ic的朋友帮忙画个图。 报酬详谈。我的联系方式:sz19943@126.com 最好是深圳的朋友,呵呵。… 查看全部问答> |
|
是不是两个PLL串在综合时没有问题,但在布线时会出现问题的??因为一般我们的做法都是IBUFG+BUFG的接法,BUFG之后就输给logic而不是输给PLL了??谢谢!!请问正确的接法??… 查看全部问答> |
|
我用lpc1114的32位定时器及16位定时器,16位定时器是26us的无限中断,32位是按键 然后进行20ms的中断,我发现,当32位计数的时间内,16位中断完全没用,等32位搞完了,16位再接着中断,什么情况,中断不能嵌套么? 求高手解答!… 查看全部问答> |




