本帖最后由 北斗stone 于 2016-11-30 14:43 编辑
前些时间最近自费入手了一块STM32F469DISCOVERY。去了官网找了一小堆资料之后,我还特地发邮件给了ST的上海区AE,问了一些问题。“授人予鱼不如授人予渔”,ST的技术支持将这句话诠释得很完美!以后的帖子里我会慢慢地提到这些内容。他们的邮箱:mcu.china@st.com 言归正传,首先秀一波正反面照。 贴上官网介绍的产品特性:
- STM32F469NIH6 microcontroller featuring 2 Mbytes of Flash memory and 324 Kbytes of RAM in BGA216 package
- On-board ST-LINK/V2-1 SWD debugger, supporting USB reenumeration capability:
- Mbed-enabled (mbed.org)
- USB functions: USB virtual COM port, mass storage, debug port
- 4 inches 800x480 pixel TFT color LCD with MIPI DSI interface and capacitive touch screen
- SAI Audio DAC, with a stereo headphone output jack
- 3 MEMS microphones
- MicroSD card connector
- I2C extension connector
- 4Mx32bit SDRAM
- 128-Mbit Quad-SPI NOR Flash
- Reset and wake-up buttons
- 4 color user LEDs
- USB OTG FS with Micro-AB connector
- Three power supply options:
- Expansion connectors and Arduino™ UNO V3 connectors
- Comprehensive free software including a variety of examples, part of STM32Cube package
- Supported by a wide choice of integrated development environments
这些资源总结起来有:LCD的MIPI屏,Audio,Mic,SD(FATFS),IIC扩展接口,SDRAM,NORflash,LED,USB-DEVICE/HOST等。楼主打算拿CUBE对每个模块都进行一个评测 每一个外设都玩过去了,才表示对得起自己买了这块板子。 之前就有研究CUBE甚至是研究过用CUBE进行FREERTOS的初始化和配置,配置评测贴:FreeRTOS配置。所以此篇分享,打算依旧选择用CUBE进行初始化的配置,再详细地讲讲我自己对cube的研究。 另外,决定写评测分享之前,也和大家确定一下我所使用的开发环境。我这次导工程的时候,发现除了KEIL和IAR之外,还有可以导出成另外两个基于eclipse的工程文件选项: 这里一个是Truestudio,一个是SW4STM32。两者我都下了下来,安装之后进行了对比尝试。eclipse基础的东西自然不用说,各种跳转以及标记就很清晰,很全面了,个人感觉比keil和IAR做的好些。两者横向对比的话,感觉后者来的好,首先Truestudio是个商业化的东西,有免费版,不过很多东西都有权限限制。另外每次打开的时候,都会有个10秒左右的商业广告,让你去了解付费版的东西。所以楼主果断选择了SW4STM32。楼主后续的帖子里使用的都是这个开发环境。首先它针对的是STM32,针对性很强,并且该有的都有,文件结构及层次也是很清晰的。在我看来,唯一的缺点就是使用RTX实时操作系统的开发者可能用起来不是很舒服,毕竟RTX是keil自己的东西。 接下来就是这块板子的评测之路了,首先开了下载安装STM32CUBEMX。在新建工程之前,首先下载F4系列的库文件,如图: 点击help,选择安装新库,按照图3,4步它就会自动安装库文件了,网速还是很快的,大概20分钟就能更新完库了。 新建工程自然不用说,值得一提的一个细节是: 在选型之前可以选择芯片和选择板子。F469为例,如果选择芯片F469,此时的引脚图上除了电源和地的引脚之外,所有的引脚都是空空如也,什么也没有的 如果选择板子,那么,板子上的一些已分配的硬件引脚是用橙色标记出来了。这个相当于是在左侧菜单外设使能之前,选择某个引脚功能,引脚便会标记为橙色,之后一旦使能对应硬件外设,那么之前标记橙色的引脚将会自动变为绿色。先标记引脚再使能外设的做法,可以防止引脚复用而自动选错导致的疏忽。因此我选择了新建板子工程,这样的话,那些各类外设的引脚提前标记好了 就不用我再次去查阅板子的原理图,当然拿原理图来确定也是很有必要的。 DISCOVERY系列用的下载器也是stlink,它的好处就是自带串口,不需要额外的数据线,也能进行串口通信。依照之前nucleo的使用经验,用的是USART3。不过楼主还是老老实实地查阅了原理图,求证了这一点 再看CUBE里的管脚,没错,就是这两个了 在左侧使能usart3,采用异步工作模式 对应的管脚就变绿了,不用担心引脚复用,系统给你选错引脚。 然后进入第二个页面,配置时钟(虽然之前的评测帖子有提到过,但是重新提一下一个细节的地方)。这里我用的波特率不高,所以系统主频用默认的就好 如果你将时钟配错了,系统会有红色的提示 图中1和2是超出范围的提示,3是重置配置参数,4是系统自动配置合理的参数,我们选择4,那么配置好的新参数如图: 重置过的参数便能符合范围。 进入第三个页面, 配置外设详细参数,这里配置的是USART3的参数,它的第一个子页面是一些基本的参数,想必大家都熟悉(波特率,位长,校验位,停止位,工作模式和超时时间)。虽然这些有在前一篇帖子里提到过,但是这篇帖子主要针对第二个子页面要给大伙儿提一个建议:第二个子页面是设置用户常量参数的。我的建议是:不应在这里设置参数。原因是因为,如果你的常量参数的值会变,那么改变后需要重新导出工程,导出工程后,编译调试时,所有的文件都会重新被编译,那样非常浪费时间。因此,用CUBE初始化配置好之后,尽量少改动。或者说尽可能地少做重复的导出工作。 后面三个子页面NVIC和DMA以及GPIO我会在后面的帖子里提到,这里可以不作变动。在主页面里这三个模块也有单独的配置,其实他们是相通的。GPIO上的警告标识是因为第一个引脚页面存在橙色的标记而对应外设未被使能。 最后一个页面是低功耗的页面,手头没有精密的测电流的仪器,所以这块暂时不作考虑咯~。 参考Datasheet,我又配置了四路LED灯 (IO的输出)。 可以导出工程了 直接点击这个图标,会自动弹出导出前的设置,当然也可以在project的setting里面更改。设置完工程名,路径 导出的编译器之后在第二个子菜单里可以给生成对应的.c/.h文件打钩 打钩这一点,我也是参照别人的帖子。不过后来我自己又发现了一个细节:在导出代码之前,大家千万别保存CUBE文件。就算保存了,这个cube文件也没什么用,因为,在导出代码之后,代码工程文件内会包含一个cube文件。后者才是你更改选项后文件的保存路径。这个坑当时坑了我好几回…… 导出工程之后,便可以打开SW4STM32了,整体框架如图,对原版的eclipse几乎没有多少改动 导入CUBE的工程步骤:右击左侧工程栏,选择import,弹出的页面选择现有工程 然后进入以下页面 值得注意的一点是,选项1代表直接打开工程,选项2代表从压缩包中导入工程。在下面选项3中,不用copy到工程路径内。然后点击Finish,工程便可以导入了。编译调试的环境也很简单。 这样,一个带有串口和LED的简单工程就创建完毕了。 好了,测评第一波就到此结束咯! |