参加了2017慕尼黑上海电子展,通过和ST明星产品STM32H7系列的演示开发板合影得到了此开发板,有种卖身换板子的感觉。。。这块开发板的基板就是nucleo144啦,看开发板说明上写的这是初级版本,就是好多外设都没有,最愁人的是连外部晶振都没焊,只能使用内部时钟晶振,确实够初级,不过这些都小case,不影响正常的使用测试。
1.开发套件基本组成:
板载的外设主要有ST-link/V2-1,除了单步调试还有个虚拟串口,和STM32F722的usart3串口相连,串口打印比较方便。有一个microUSB,既可以做OTG,又可以做usb device。三盏小灯(红绿蓝)和一个用户按钮,此外就是MCU的外设了,ADC、DA、SPI、、usart、RTC等。扩展接口有两种,一是st自家的st zio(没用过),还有就是Arduino了。
2.开发板上电:
开发板上电可以通过一根普通的安卓手机数据线连接即可,开发板有个初始demo,按user button,会切换三盏灯以不同的频率进行闪烁,主要是演示开发板是否能够正常工作,刚带回来就被我给搞掉了,不过留了张图。
PC端的驱动主要是ST-LINK的驱动安装,一定要到官网下载最新版,能支持各种windows操作系统,支持各种STlink版本。
这个网址(图片上能看到,权限不够不让发)是最新的驱动网址,拖到页面最下面就是下载链接啦,如下图,谷歌浏览器自带的翻译,把st官网翻译成了中文,凑合看。
下载好了文件后后解压,根据你的操作系统位数,32位系统运行dpinst_x86.exe,64位操作系统运行dpinst_amd64.exe(PS:要以管理员身份运行),装完后就电脑就可以识别stlink了,计算机里还会看到一个虚拟U盘,如下图,把编译好的程序bin(或hex)文件直接拷进去,按一下reset键可以直接运行,不用烧写工具或keil等编译器下载。这个功能主要用于mbed线上开发,但我在mbed网站上还没看到这个开发板。
3.开发环境搭建
开发st mcu程序的编译器有很多,比如IAR,Keil和SW4STM32等,我从51单片机时就用Keil,到现在还是用Keil(没招,恋旧),这个软件网上都能找到,我用的keil5.16,激活也好弄,装好后还要做的就是安装stm32f7系列的pack包了,还有就是一些公用包比如cmsis等。
还有就是安装stm32cube,这个主要是用于生成库函数开发程序模板,你可以根据你的IO或外设的需求进行模板的定制,软件会把所有的初始化函数全部给你写好,还是很不错的。你在写程序时只需要调用相关的HAL函数就行。这个也要安装特定库,开发stm32f722就要装stm32f7系列的库包,程序运行和安装库的界面如下图,库也要安装最新版的,老版不支持stm32f722。
4.开发案例
由于现在在上海出差,手边没有什么外设可以驱动,只有这么一个开发板,所有就只用了开发板上的一些外设,主要实现的功能是采集mcu的内部温度通过DMA方式读入内存,然后通过串口打印出来,传输周期1s一次,每次传输会改变红色和蓝色灯的状态,而绿灯常亮。下面贴出stm32cube的开发过程:
首先是针脚定义界面,Adc1下面有一个温度传感器通道,打上√,sys下面debug选异步跟踪串行调试模式,串口3选异步模式,关闭硬件流控制,
时钟配置如下图所示,我这是随便配的,没用锁相环倍频,原则是不报错,mcu频率较低,肯定不是最好的性能,可自己再调整
下面就是硬件详细参数配置了
串口配置状态:
adc配置状态:
DMA配置状态:
GPIO配置:
至此基本大功告成,可以生成程序模板了,点击工具栏上的那个小齿轮就可以生成程序了,设置好目标文件夹,选好开发工具,即可生成模板程序了。如下图
也可以对代码生成做一些设置,我觉得搞开发的肯定懂E文,就不解释各选项具体啥意思了。如下图
生成的代码文件夹如下,可以用keil打开了。
再实际开发时遇到了一点小问题,为了持续进行mcu的温度采集,adc1的dma模式要配置成circular模式,但是此模式下代码再实际运行调试时无法启动adc,而配置成regular模式后,就可以正常启动adc1,但此模式下只能进行一次dma转换,为了在regular模式下实现持续采集,在adc-dma的回调函数里加入了adc的重启函数,但是这种情况下就不能节省cpu时间了。不知道circular模式下无法启动adc是不是stm32cube的一个bug。
演示效果如下图,附上源代码:
test.zip
(624.84 KB)
开发板已经坏掉了,用stm32 stlink utility 瞎设置那个pcrop,现在无法对芯片操作了,读不到mcu存储,too young to simple
|