历史上的今天

今天是:2024年08月26日(星期一)

正在发生

2020年08月26日 | 让菜鸟秒变stm32高手的STM32CubeMX

发布者:VelvetSoul 来源: eefocus关键字:stm32  STM32CubeMX  菜鸟 手机看文章 扫描二维码
随时随地手机看文章

菜鸟到高手,显得有些霸气哈,不过的确如此,官方带给我们一个比较实用的stm32的工具。这个工具就是STM32CubeMX,昨天玩freeRTOS的时候就提到过。说到freeRTOS,这里就多说两句。全局变量,在任务间相互访问的时候也是需要临界保护的,不然可能会出现奇怪的问题。不过我们可以关掉时间片调度,任务间可以访问全局变量而不用加保护(不等于菜鸟可以随意代码)。关闭了时间片调度,只有发生vTaskDelay的时候才会上下文切换。只要代码合理访问全局变量可以不加保护的。因此代码也不是可以任意书写的,关于freeRTOS的问题,多看看源码,一切都会有答案。源码较少,这里就不过多介绍。关闭时间片不是网上说的configUSE_TIME_SLICING这个宏定义,老鸟发现这个宏压根没用哈,嘿嘿。阅读源码可以找到相关宏配置。不过不建议关闭,时间片调度也可以让一个任务在执行一定时间后切换到其他就绪任务去执行。如果有freeRTOS相关问题,可以留言给我。废话说多了点哈,继续我们的STM32CubeMX。下面我们来讲讲这个工具的作用,讲完后,可以自己下载一个试试,挺简单不多介绍。


到官网下载STM32CubeMX,并安装。

1:芯片选型

打开STM32CubeMX,我们点击new project,我们就可以进行芯片选型,如果你下载了打开了这个工具,是不是很惊讶,stm32的所有产品型号都在里面,而且左下提供了资源勾选,比如你要以太网支持,勾选以太网选项,所有的支持以太网的stm32芯片才会被显示,旁边还有个max的栏目指示了芯片最多支持该功能的个数。空白的一般默认只有一个。下图是我勾选以太网的截图。

      

上图不仅提供了芯片,还提供了价格,是否在售,封装,存储,频率等一些列信息。

除了cpu资源可以选型外,上面还提供了脚多少,存储大小等非常灵活的选型方式。

我们选择其中一个的单片机后。右上部分给我们提供了完美的支持。


第一个选项提供了改cpu

的特性,我们可以大概的了解选中的cpu资源。



第二个选项提供该cpu框图,截图图片太大,这里就不截图了。

第三个选项提供了cpu文档,这个文档非常多也非常全面,基本不用在网上东找西找了,主要给硬件工程师用。


第四个选项提供了cpu的相关设计资源,软件编程文档,给软件工程师用,非常全面,包括网上很少用到的文档资料,比如系统移植相关的底层资料(堆栈,指令,汇编)。

第五个选项提供了芯片购买途径,这个每个人自己选择吧。

第六个选项开始工程,芯片选好了,就可以开始工程。


2:设定芯片。

芯片选好后,可以开始设定芯片。这就是软件工程师的好帮手呀。比如我要以太网功能,勾选上以太网即可,他就会自动分配出芯片对应的以太网接口。如下图:


上面我选了标准的MII接口。很多人可能就不理解,你勾了个以太网,咋报错了。老鸟告诉你为啥变红了,stm32有个复杂的功能就是io口复用,勾选mii后分配的io口和spi2以及iis口重合了,所以这个工具非常智能的提示了出来,非常神奇吧。告诉你他们不能使用了。还有些变黄了,说明他们可以选择性使用,真是太方便了,省去了查资料慢慢找io的痛苦。比如我们还要给它个外部时钟。我们勾选时钟即可,响应的时钟脚就会分配出来。


如果要将某个脚设置成输入输出那就更简单了,鼠标点选对应的io口选择对应功能即可,比如我单击PA6,它的所有功能可以轻松选择:


软件使用比较简单,不过多解释,一看就明白,设置完芯片功能后,我们就设定系统各项功能时钟。


选择时钟设置页面(clock configuration)时钟轻松设定,如下图,简单明了,不过多解释了:


时钟配置完成后,可以切换到configuration选项对功能进一步设定,里面参数都是常用的功能,设置较为简单。就不多举例了,比如网络功能里面设置mac地址等。

3:生产初始化代码

经过上面的图形化设定,我们可以直接生产初始化代码。省去我们查阅资料慢慢配置的的环节,时间更多的利用在应用层设计。点击project下面的生成代码选项。输入工程名(根据你项目需要起名),这里我就随便输入一个名字。设定好相关参数。点击ok即可。顺便说下,这个工具是配带教程的,我这里只是告诉大家有这样个工具可以加速开发,具体设置参考官方教程。


生成后打开文件夹内容如下:


上图的inc 和src文件夹里面是生成的主要代码,其他几个文件夹里面的东西,大家可以根据自己需要选择。src文件夹文件如下:


打开熟悉的main.c,可以看到如下内容:


初始化已经完成,直接写自己的功能即可了,然后就是加入到工程里面编辑,是不是非常简单。熟悉的话10来分钟一个工程构架就出来了。这样一来,stm32就变成最简单的单片机了,有木有,这个是基于库函数的,io操作直接可以查看库函数手册完成。这个工具主要是加速底层开发。轻松弄出自己的应用程序。对于新入手stm32来说,用这个库函数,让开发变得简单。减少定时器,can,ad,line等外围配置花去的时间,图像化配置,秒变高手。最主要的是功能直观可见,编辑性好,可导入工程编辑。修改配置也简单

关键字:stm32  STM32CubeMX  菜鸟 引用地址:让菜鸟秒变stm32高手的STM32CubeMX

上一篇:用STM32F4的库函数RCC_PLLConfig()代替SystemInit()手动初始化
下一篇:STM32CubeMX教程之简介及基本使用

推荐阅读

一般的寄存器访问需要通过读-改-写三步曲 和 位运算的清0置1来实现,但在stm32的编程中,通过利用它的一些优秀的特性如端口位设置/复位寄存BSRR、位绑定等,我们可以大大提升寄存器的访问速度和简化寄存器的操作。//一般寄存器操作:GPIOx->ODR |= 0x10; //Pin4置1GPIOx->ODR &= ~0x10; //Pin4清0BSRR/BRR寄存器 GPIOx->BSRR //对BSRR的低16位写...
在汽车“新四化”的发展趋势下,汽车智能网联已成为自主品牌的突围新风口。凭借对本土需求的精准认识以及市场环境的优势,自主品牌如今已经走在车联网阵地前列,而相比之下,合资品牌虽也有少部分品牌开始构建车联网生态,但整体尚未形成规模,也缺乏自主创新。 放眼未来,随着5G和V2X技术的到来,车辆智慧网联的重要性已经不言而喻,面对目前百花齐放的车...
专注于引入新品推动行业创新的电子元器件分销商贸泽电子 (Mouser Electronics) 很荣幸地宣布赞助Qorvo®设计峰会,这是一系列可免费参加的在线研讨会,举办时间为2020年8月及9月的每周三和周四。Qorvo在线设计峰会从8月12日周三开始,带你一起探索射频与电源管理技术,并与Qorvo的市场和产品专家连线,帮助你进一步提升应用。 Qorvo设计峰会是一...
寒武纪科技2021年最大变化,是入局自动驾驶芯片赛道。寒武纪做自动驾驶芯片很好理解:自动驾驶是AI未来最大的应用场景,而且全球汽车市场缺芯,作为AI芯片设计公司,没有理由不入局。但在这个竞争者众的热门赛道上,寒武纪现在才动身是否为时已晚?有竞争对手说在自动驾驶的芯片赛道上,2020年如果不能量产就已经出局,对于此,寒武纪如何回应? 在8月23日...

史海拾趣

问答坊 | AI 解惑

求助高频开关集成块资料

小弟目前在改造一电源,需求TWH8752,TWH8751,TWH8778的资料,但怎么也找不到。那位能给予帮助,小弟 在这里多谢了!电邮      lvhemail@yahoo.com.cn…

查看全部问答∨

中断嵌套

呵呵,找资料时找到了以前写的一篇日至,大家一起研究:) a1m&b&a(n0IC开发网aV0zR^)n{;s4pjD IC开发网9k RQQrH0F k.SSE TroRF0 !SFe]cVJ9TE0 GW [ ...…

查看全部问答∨

学习PCB转印的历程

说起学PCB热转印,我也不知是什么时候开始的了.记得开始买了10元的转印纸,一张也没转好!后来又改用不干胶衬低做转印纸,感觉好了一点;但有一个问.就是画好的图打印出来的图会很淡,特别是焊盘部份,转出来没基本没了焊盘........使我一度对转印失去了信 ...…

查看全部问答∨

请问如何解读vxwork调试tt命令的输出

官方的注解是 * EXAMPLE * .CS *     -> tt "logTask" *      3ab92 _vxTaskEntry   +10 : _logTask (0, 0, 0, 0, 0, 0, 0, 0, 0, 0) *       ee6e _logTask&nb ...…

查看全部问答∨

请各位大侠看一下这个GPIO的实现问题

各位大侠:      我的问题是这样的:我用GPB0,GPB1,GPB9分别接上一块LCD的控制引脚CS,SID,SCLK,其中在51单片机中发送数据的函数部分语句如下     {       i_data=0xf8;      ...…

查看全部问答∨

欢迎使用我的产品,谢谢!

1. c8051f 单片机(c2 ,jtag)和at89s5x单片机(isp)二合一串口编程下载线,速度极快,支持3伏(c8051f 单片机),5伏(at89s5x单片机)电源,设计新颖,可靠稳定,成本低廉!!!目前通过实际验证可编程下载的芯片:c8051f310、c8051f320、c8051f3 ...…

查看全部问答∨

关于串行键盘控制器的问题

我想请教各位高人,我现在想选一个串行键盘控制器芯片,和51连接,但是不知道选什么好,查到了两款“ZLG7290”和“sk5278”,请问大家有用过的吗?不妨推荐给我啊,谢谢了!对了是16键的键盘~ …

查看全部问答∨

F2808与EEPROM通讯问题,SPI寄存器接收不到数据

咨询大家一个问题在用F2808 SPI与EEPROM(AT25320AN)通讯的时候,读写数据都是对,可以通过示波器看出来,但是读回来的数据在寄存器里不对,数据发送和接收定义都是八位,其中读取数据的时候,发送完读取地址后,为了再次启动时钟发送的伪数据是0, ...…

查看全部问答∨

LED晶粒原料供过于求,下年仍无法解决

在LED室内照明行业市场的腾飞,再加上当前国家当局力推节能补贴,发动陆厂大肆扩增LED晶粒出产能,从2011年起陆厂大约新增420台MOCVD机台,总共数量达720台,但在人才不足够和景气不明朗的冲击下,开机率只有一半,而今年LED照明事业需要大增下,陆 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved