完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
【NUCLEO-F412ZG试用体验】基本硬件组成和下载第一个程序 参考资料: DM00107720:Getting started with STM32CubeF4 firmware package forSTM32F4 Series 这个英文文档讲解了STM32CubeF4固件包的架构和内容,固件包中包含了HAL库的官方源程序。 DM00244518_ENV3:UM1974 User manual STM32Nucleo-144 board:这个文档包括了NUCLEO-F412ZG开发板如何快速上手,包括硬件的布局(layout)和一些配置信息,包括硬件的原理图,可以从这篇文档中找到。 下载地址为: http://www.stmcu.org/document/list/index/category-150 http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-nucleo/nucleo-f412zg.html 开始试用板子的一些基本步骤: 1, 首先需要安装MDK5.20,这个相信大家已经很清楚了,这里不再说了。我们知道MDK5版本之后还需要安装器件包,因为现在芯片公司更新自己新的芯片的速度很快,比如ST公司的STM32F412ZG这个芯片,可能在你已经安装的MDK中找不到。这时候可以卸载掉原先的器件包,重官方网站上下载最新的器件包即可。如下图所示: 卸载的过程如下: 接下来下载Keil.STM32F4xx_DFP.2.10.0即含有最新的STM32F412ZG器件的包:下载地址为: 2, 安装ST-Link驱动,相信大家这个已经非常熟悉啦,就不多说啦! 3, 下载最新的STM32CubeF4固件包(STM32Cube_FW_F4_V1.13.0)!注意一定需要下载最新的固件包,否者可能不包含最新的芯片STM32F412的固件程序。下载地址:http://www.stmcu.org/document/detail/index/id-214993 在这里简单解释一下STM32CubeF4固件包吧:这个固件包和以前标准库开发提供的固件包类似,不过里面提供的是现在ST推广的基于HAL库的官方程序例程。 浅淡选择ST的标注库 或者 HAL库? ST 先后提供了两套固件库:标准库和 HAL 库。STM32 芯片面市之初只提供了丰富全面的标准库,大大便利了用户程序开发,为广大开发板所推崇,同时也为 ST 积累了大量标准库用户。有过 STM32 基础的同学想必对标准库非常熟悉。实际上,HAL 库和标准库本质上是一样的,都是提供底层硬件操作 API,而且在使用上也是大同小异。有过标准库基础的同学对 HAL 库的使用也很容易入手。在新型的 STM32芯片中,用 HAL 库逐步淘汰标准库。许多人可能觉得学习HAL比较麻烦,觉得可能耗费时间,其实不然。我们来简单比较一下标准库和HAL的串口配置的 1.标注库串口的代码 2.HAL库串口代码 HAL库和标准库的代码很相似,有标准库使用经验的,可以很快转到HAL库上来。 4.基本硬件的架构: 主要由两部分组成ST-link和STM32F412最下系统。硬件的原理图就不贴了,看不清楚,看上面提供的PDF。 5.下载第一个程序,简单的GPIO程序。 在STM32CubeF4固件包中:按照路径如下: STM32Cube_FW_F4_V1.13.0ProjectsSTM32F412ZG-NucleoExamples 这里面包含了官方提供的一些GPIO、ADC、串口、TIM等等基础的程序, 我们在MDK-ARM文件夹(路径:STM32F412ZG-NucleoExamplesGPIOGPIO_IOToggleMDK-ARM)下,双击Project即可打开GPIO例程。 每次打开工程后,我们打开readme.txt文件,这里面包括了这个工程的使用说明,包括一些注意事项。 简单的解释一下代码吧,嘿嘿: int main(void) { /* This sample code shows how to use GPIO HALAPI to toggle LED1 and LED3 IOs in an infinite loop. */ 该例程代码演示了使用HAL库中的API函数来翻转LED灯。 HAL_Init(); /* Configure the system clock to 100 MHz */ SystemClock_Config();//系统时钟初始化为100MHz /* -1- Enable GPIO Clock (to be able toprogram the configuration registers) */ //以下为使能GPIOB的时钟,三条语句实际上为一样,和标注库的配置一样。 LED1_GPIO_CLK_ENABLE(); LED2_GPIO_CLK_ENABLE(); LED3_GPIO_CLK_ENABLE(); /* -2- Configure IO in output push-pull modeto drive external LEDs *///设置GPIO为推挽输出模式 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL;//无上拉 GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;//设置IO速度 GPIO_InitStruct.Pin = LED1_PIN;//设置管脚 HAL_GPIO_Init(LED1_GPIO_PORT,&GPIO_InitStruct); GPIO_InitStruct.Pin = LED2_PIN; HAL_GPIO_Init(LED2_GPIO_PORT,&GPIO_InitStruct); GPIO_InitStruct.Pin = LED3_PIN; HAL_GPIO_Init(LED3_GPIO_PORT,&GPIO_InitStruct); /* -3- Toggle IO in an infinite loop */ while (1) { HAL_GPIO_TogglePin(LED1_GPIO_PORT,LED1_PIN);//对对LED1管脚翻转输出。 /* Insert delay 100 ms */ HAL_Delay(100); HAL_GPIO_TogglePin(LED2_GPIO_PORT,LED2_PIN); /* Insert delay 100 ms */ HAL_Delay(100); HAL_GPIO_TogglePin(LED3_GPIO_PORT,LED3_PIN); /* Insert delay 100 ms */ HAL_Delay(100); } } |
|
|
相关推荐
|
|
|
排版没调好,我上传一个word吧
|
|
|
|
|
|
|
|
|
再上传几个文档,,,,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 05:44 , Processed in 0.903730 second(s), Total 84, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖