官方STM32的NUCLEO开发板使用

http://www.stmcu.org/module/forum/forum.php?mod=viewthread&tid=615419&page=1&extra=

学习官网:https://os.mbed.com/platforms/ST-Nucleo-F303ZE/

https://os.mbed.com/docs/latest/tutorials/quick-start-online.html

https://os.mbed.com/teams/ST/code/Nucleo_blink_led/?platform=ST-Nucleo-F303ZE

mbed os是一个简化编写的架构,与其类似的还有Arduino生态环境,是一种大幅度的减少编程要求,快速达到用户需求的一套开发架构。

 

而mbed ide,及其一整套在线编程,拷贝式下载方法,则是这一套架构的开发平台及其执行方法。

 

这一篇将介绍如何使用mbed平台写一个程序并下载到开发板,在这里我使用F469-Discovery作为开发板。

 

 

1.首先,打开mbed的blink程序实例网址,

 

https://docs.mbed.com/docs/mbed-os-handbook/en/latest/getting_started/blinky_compiler/

 

 

2.可以直接点击  导入到mbed IDE(Import into mbed ide),如果没有登录,会跳出登录界面页面,登录注册方法不再详细叙述

 

3.登录完成后将跳转到IDE界面,如果是第一次登录会提示未导入开发板,要求你进行开发板的选择,如果不小心点击取消,也可以从该页面右上角按钮处选择开发板

 

 

4.开发板选择页面,这里我勾选了STM(左侧),从中找到了F469NI,找到后点击进入到F469的介绍页面

 

 

5.进入页面,可以看到右侧会有 添加到我的设备的按钮,点击即可将该板子添加到我们的IDE的设备列表中,下图为添加完成后

 

 

6.回到刚才在blink页面点击导入到IDE这一个过程,此时可以正常导入,将显示以下配置页面,点击 导入 即可

 

7.可以看到mbed IDE中出现了几个文件,其中main文件是主函数,README包含项目的说明,而mbed-os是库文件,具有大量的API

 

 

 

此时main.cpp的代码:

 

 
  1. #include "mbed.h"

  2.  
  3. DigitalOut led1(LED1);

  4.  
  5. // main() runs in its own thread in the OS

  6. int main() {

  7. while (true) {

  8. led1 = !led1;

  9. wait(0.5);

  10. }

  11. }

  12.  
  13.  

 

 

可以看到是一段点亮LED闪烁的程序,每秒闪烁一次

 

 

8.点击上方的编译(Compiler),mbed IDE将会编译当前的项目,这一点有个很大优势是,编译是由ARM方服务器提供的云服务,因此如果我方电脑性能一般那么速度相比本地编译来说会快不少。

 

9.如果编译完成并且没有问题,则会跳转下载当前项目生成的bin文件

 

 

10.下载并且保存文件,此时可以连接上开发板,内置的FLASH将以一个可移动磁盘形式挂载在系统上

 

将下载的文件复制到这一个磁盘中,reset开发板,开发板将执行mbed ide上编译的程序

 

1,准备

​ 既然要使用这块板子,那么对这块板子我们肯定是需要基本了解一下的,怎么测试,如何测试,供电问题,调试问题我们都需要看看官方文档。

​ 这里贴一个NUCLEO开发板手册下载地址http://www.stmcu.org/document/detail/index/id-214946.里面详细的说了开发板的功能,如何使用,原理图等,有不懂的不明白的查查这手册。

​ 在手册的5.1节,就说了如何开始使用。我把原文贴下,顺便简单翻译一下,本人英语垃圾,只是表达下意思,不对的还请指正,还有本核心板已经集成ST-LINK/V2-1:

Follow the sequence below to configure the STM32 Nucleo board and launch the demo 
software:(按照下面的步骤配置STM32 NUCLEO核心板并启动演示软件)

  1. Check the jumper position on the board, JP1 off, JP5 (PWR) on U5V, JP6 on (IDD), 
    CN2 on (NUCLEO) selected.(检差板子上跳线帽位置,JP1不接跳线帽,JP5跳线帽接U5V插针,JP6接跳线帽,CN2接跳线帽用于t调试选择NUCLEO板子)
  2. For correct identification of all device interfaces from the host PC, install the Nucleo 
    USB driver available from the www.st.com/stm32nucleo webpage, prior to connecting 
    the board.(在连接板子之前,为了主机PC能识别设备所有接口,需安装Nucleo USB驱动,可从www.st.com/stm32nucleo 获取)
  3. Connect the STM32 Nucleo board to a PC with a USB cable ‘Type-A to Mini-B’ through 
    USB connector CN1 to power the board. The red LED LD3 (PWR) and LD1 (COM) 
    should light up. LD1 (COM) and green LED LD2 should blink.(将STM32核板连接到带有USB线缆的PC上,即A到mini B。 USB连接器CN1为板供电。红色LED LD3 (PWR)和LD1 (COM) 应该点亮。LD1 (COM)和绿色LED LD2应该闪烁)
  4. Press button B1 (left button).(按下B1键(左键))
  5. Observe the blinking frequency of the three LEDs LD1 to LD3, by clicking on the button 
    B1.(通过点击按键 B1,观察三个led LD1到LD3的闪烁频率)
  6. The demonstration software and several software examples on how to use the STM32 
    Nucleo board features are available at the www.st.com/stm32nucleo webpage.(演示软件和几个关于如何使用STM32 NUCLEO核心板的软件示例可在www.st.com/stm32nucleo网页上找到)
  7. Develop the application using the available examples.(使用可用示例开发应用程序)

2,开始使用

​ 准备完毕,我们就要开始按步骤开始使用调试。

第一步,检查跳线帽,略过了。

第二步,安装ST-LINK/V2-1驱动

​ 1,官网下载驱动相关软件,驱动地址.页面如下所示,选择对应版本下载,同时记得下载一下STSW-LINK007软件包,这个是用于ST-LINK/V2-1固件更新的。 
这里写图片描述

​ 2,我下载的驱动是STSW-LINK009,解压后以管理员身份运行stlink_winusb_install.bat文件,安装好驱动。

第三步,供电并查看驱动是否可用

​ 我们将USB的mini口接上板子,另一端接到电脑,这时我们可以在设备管理器查看,我们应该可以看到下图所示的界面,一个ST-LINK Debug的串行控制总线和一个COM口。同时我们也看到绿色的LED灯闪烁。

这里写图片描述

第四步,按B1键并观察LED灯闪烁频率

​ 发现绿色LED闪烁频率变化。

第五步,官网下载示例程序并下载到板子测试运行(默认你已经配置安装好keil5)

​ 1,官方示例包下载地址:示例包地址,选择对应系列即可,我的事L0就下载的STM32CubeL0的软件包。

​ 2,对应芯片keil5 pack包下载地址:地址,选择对应芯片系列下载即可,然后安装即可。

​ 3,使用usart测试示例.

​ (1)解压我们下载的STM32CubeL0的软件包,使用keil5打开对应板子的UART程序。我打开的程序路 径是:

STM32Cube_FW_L0_V1.10.0\Projects\STM32L073RZ-Nucleo\Examples\UART\UART_TwoBoards_ComPolling\MDK-ARM.
  • 1

​ (2)修改源码,我们如果看手册的话,可以知道usb集成的串口是USART2,而我源代码里面是使用的USART1,这样我们串口输出不能用已经集成的串口输出了,所以我改了一下main.h的宏定义,改后如下:

/* Definition for USARTx clock resources */
#define USARTx                           USART2
#define USARTx_CLK_ENABLE()              __HAL_RCC_USART2_CLK_ENABLE()
#define USARTx_RX_GPIO_CLK_ENABLE()      __HAL_RCC_GPIOA_CLK_ENABLE()
#define USARTx_TX_GPIO_CLK_ENABLE()      __HAL_RCC_GPIOA_CLK_ENABLE()

#define USARTx_FORCE_RESET()             __HAL_RCC_USART2_FORCE_RESET()
#define USARTx_RELEASE_RESET()           __HAL_RCC_USART2_RELEASE_RESET()

/* Definition for USARTx Pins */
#define USARTx_TX_PIN                    GPIO_PIN_2
#define USARTx_TX_GPIO_PORT              GPIOA
#define USARTx_TX_AF                     GPIO_AF4_USART2
#define USARTx_RX_PIN                    GPIO_PIN_3
#define USARTx_RX_GPIO_PORT              GPIOA
#define USARTx_RX_AF                     GPIO_AF4_USART2

​ (3)使用keil5编译软件,设置Device为对应的芯片,设置Debug选项为ST-LINK,下载程序到板子,下载成功后我们打开调试助手,选择我们对应的串口打开,设置9600波特率,按板子复位键,再按B1键,就可以看到收到了设备的信息如下所示(这里主要是keil5软件下载调试部分,就不祥说了):

这里写图片描述

 

你可能感兴趣的:(stm32)