第一次申请ST的板子,没想到还申请成功了,心情真是无比的喜悦。到目前为止,学习stm32已经有四个月的时间了,所使用的板子是stm32f4-discovery,这块板子也不是自己所有。本来想着自己花钱买一块的,无奈身为学生,囊中羞涩,只好先借用同学的开发板学习stm32了,直到看到ST举办的活动,并参加了申请开发板的活动,才算是让自己拥有了一块属于自己的stm32开发板。 这块板子比我之前用的f4-discovery开发板大不少,据说也是史上最大的ST开发板。当然到目前为止,我只见过三款ST开发板,还有一款是L0的开发板,这一款确实是最大的。拿到这块板子之后,第一件事想做的当然是赶紧上电,看一下效果。于是找来一根数据线,插上去之后,就看到内置的官方例程已经在运行了,上面的灯在不停地闪烁,这块板子上只有两个按键,一个是复位键,另一个是用户键,按了用户键,效果发生变化。上电测试完之后,就赶紧在官网了下载这块板子的用户手册,上面详细介绍这块板子的资源和详细的电路图以及使用的方法介绍等。首先第一步仍然是st-link驱动的安装,我之前因为已经装过了,所以就不用管这一步了,但是知道后来要下载程序的时候,才发现程序根本下不进去,在设备管理器中查看,上面提示st-link的驱动没有安装,只好又重新安装一下驱动,并且是手动选定要安装的驱动,才最终看到驱动安装成功的提示。说实话,这一点让我很费解,不知道是什么原因,并且花费了一些时间才解决,按说之前装过st-link的驱动,这次就没必要再安装了,这一点真是让我百思不得其解。
装好驱动之后,接下来就是要写一段自己的小程序,让板子跑起来。我已经习惯用stm32cube来开发程序,所以这一次就用cube先配置好相应的功能。说起stm32cube,真是不得不吐槽,感觉这个软件有很大的bug。新建一个工程后,如果用鼠标点击拖动相关区域,新建的工程就会消失,只能再重新建工程。这样的情况经常出现,有时是打开一个工程后,它会自动退出,只能再重新打开,这样的情况真是让人很恼火。希望ST能发现这个问题,并加以改进。第一次使用F7的板子,所以就先写一个简单的程序,看一下效果。这次就写一个串口发送的小程序吧。cube中的配置如下图所示:
这是引脚配置界面,使能UART4,选择异步发送。还有时钟的配置,我一直习惯使用外部时钟,所以也会配置RCC引脚,但后来在确定外部时钟的晶振频率大小时才发现这块板子根本没有焊接外部的晶振,所以也就只会用内部自带的振荡器了。这里需要特别说明一下,这块板子上一共有四处晶振,X1是8M的晶振,给f103使用,用来下载程序;X2是32.768kHz,是低速外部晶振,用来驱动RTC时钟;X3是外部用户时钟晶振,板子上没有焊接这个晶振;X4是25M的晶振,根据电路图可知,这个晶振为以太网部分提供时钟。时钟配置部分如下:
配置完时钟之后,接下来就要对要使用的功能进行设置了,对GPIO的设置,UART的设置等,当然也可以使用默认的设置,可根据具体情况来设置。本次我使用的都是默认的配置。当然和我之前所使用的f4还是有些变化的,在configuration项中,多出了CORTEX-M7 ARM选项,点开之后出现一些参数设置,我也不太清楚每个参数用来做什么的,就没有去管它。
配置完之后,就直接生成了keil文件,打开之后,用户所要添加的代码也非常少,在这里我只定义了一个变量,用来存要发送的数据,然后在while中添加一条发送语句,编译通过,就直接下载到板子上了,添加的代码如下,HAL_UART_Transmit(&huart4,(uint8_t *)Transmit,sizeof(Transmit),0xffff);就这条语句便可实现数据的发送。(本来想上传图片的,结果发现图片老是发不上来,等了半天也不行)
运行的结果如下:
第一次使用F7的板子,先用这个小程序初试牛刀,stm32f7的功能如此强大,还有很多功能没有用过,今后慢慢尝试体验,让自己不断进步。
|