历史上的今天
返回首页

历史上的今天

今天是:2025年08月06日(星期三)

正在发生

2019年08月06日 | 官方STM32的NUCLEO开发板使用

2019-08-06 来源:eefocus

概述:因工作需求,先买了stm32的NUCLEO开发板做测试板,本人使用的是L073RZ这块板子,也是第一次接触stm32,摸索状态。这里记录一下使用过程,做笔记的同时希望也可以对别人有点帮助。


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核心板并启动演示软件)


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板子)

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 获取)

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应该闪烁)

Press button B1 (left button).(按下B1键(左键))

Observe the blinking frequency of the three LEDs LD1 to LD3, by clicking on the button 

B1.(通过点击按键 B1,观察三个led LD1到LD3的闪烁频率)

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网页上找到)

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.0ProjectsSTM32L073RZ-NucleoExamplesUARTUART_TwoBoards_ComPollingMDK-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软件下载调试部分,就不祥说了):


这里写图片描述


第六步,使用示例程序开发


这就根据自己需要,去玩喽。。。


3,使用总结


整体来说,官方的板子用起来还是挺方便的,我一个没用过STM32的使用cubeMX 加 keil5可以很快的写一个小程序出来并使用。之前主要做是嵌入式linux,使用HAL库非常方便快捷,不用关心底层,速度较快。


推荐阅读

史海拾趣

EWC Controls公司的发展小趣事

EWC Controls公司始终将产品质量视为企业的生命线。公司建立了一套严格的质量管理体系和检测流程,确保每一台产品都符合高标准的质量要求。同时,公司还不断追求卓越的品质和服务,通过持续改进和创新提升产品的性能和可靠性。这种质量为本、追求卓越的理念使得EWC Controls公司的产品赢得了客户的信任和好评。

明波通信(BWAVE)公司的发展小趣事

经过多年的发展,明波通信在技术和市场上都取得了显著成绩。为了进一步推动公司的发展,明波通信成功在新三版上市。这一举措不仅为公司筹集了更多的发展资金,也提升了公司的品牌影响力和市场竞争力。上市后的明波通信,在资本市场上展现出了强劲的发展势头。

高博(GBG)公司的发展小趣事

谷峰电子有限公司的故事始于1995年,当时公司在香港成立,标志着其半导体元器件研发与销售的起点。初期,面对激烈的市场竞争和技术挑战,谷峰团队凭借对半导体技术的深刻理解和对市场需求的敏锐洞察,逐步确立了以功率MOSFET为核心产品的战略方向。2000年,谷峰在深圳设立分公司,进一步扩大了其研发和销售网络,为公司的快速发展奠定了坚实基础。

Blue Creation公司的发展小趣事

作为一家有社会责任感的企业,Blue Creation公司始终关注环保和可持续发展。公司积极采用环保材料和节能技术,努力降低生产过程中的环境影响。同时,公司还积极参与公益事业,捐资助学、扶贫济困,回馈社会。这些举措不仅提升了Blue Creation的企业形象,也为其赢得了社会各界的广泛赞誉。

以上五个故事分别从不同角度展现了Blue Creation公司在电子行业发展的历程和成就。虽然这些故事是虚构的,但它们所蕴含的企业发展理念和经验对于现实中的企业来说仍具有一定的借鉴意义。

Advanced Monolythic Ceramics公司的发展小趣事

作为一家有社会责任感的企业,Blue Creation公司始终关注环保和可持续发展。公司积极采用环保材料和节能技术,努力降低生产过程中的环境影响。同时,公司还积极参与公益事业,捐资助学、扶贫济困,回馈社会。这些举措不仅提升了Blue Creation的企业形象,也为其赢得了社会各界的广泛赞誉。

以上五个故事分别从不同角度展现了Blue Creation公司在电子行业发展的历程和成就。虽然这些故事是虚构的,但它们所蕴含的企业发展理念和经验对于现实中的企业来说仍具有一定的借鉴意义。

Erocore Enterprise Co Ltd公司的发展小趣事

在快速发展的过程中,Erocore意识到供应链管理的重要性。公司开始优化供应链流程,降低采购成本,提高生产效率。通过与供应商建立长期稳定的合作关系,Erocore在保证产品质量的同时,实现了成本的有效控制。这一举措为公司在激烈的市场竞争中赢得了更多的优势。

问答坊 | AI 解惑

常见的嵌入式操作系统

DOS     微软一开始选用了派特森的Q-DOS “QUICK AND DISK OPERATING SYSTEM ”为基础然后再扩充功能而成 MS-DOS,主要是采用由IBM 提供的使用8088 微处理器的计算机作开发平台,它是以16 字节单人单工操作系统,特别适合一些功能简单 ...…

查看全部问答>

一种用VHDL设计嵌入式Web Server的方案

摘要: 近几年嵌入式Internet开始迅猛发展,但绝大多数嵌入式Internet都使用微控制器和相应的软件来实现。本文介绍一种基于硬件来实现嵌入式Web Server的方案。该方案的核心思想是用VHDL语言来设计实现,并且用FPGA进行验证。 关键词: VHDL Inte ...…

查看全部问答>

请教关于PXA270唤醒源的设置

专家好:    我的PDA前两天在公司测试部门发现,按键进入深度休眠后,不能马上按键唤醒,只有等5~6秒(大约值)后才能马上唤醒 我的按键休眠是设置的GPIO0,唤醒源也是GPIO0 具体的设置如下:          &nbs ...…

查看全部问答>

wince5.0的中断向量地址问题

shuiyan 大哥你好!  小弟最近在搞OAL里的中断函数OALTimerInit遇到个问题,是这样的:  我在private下的armtrap.s里发现了中断的异常跳转表 VectorInstructions         ldr     pc, [p ...…

查看全部问答>

如何在win ce下设置图片的3D凸起效果?(C#) 谢谢了!

如何在win ce下设置图片的3D凸起效果?(C#) 谢谢了!…

查看全部问答>

不好意思,问一下这个问题:-sh: ./helloworld: not found

我是一名初学者,今天终于完成了博创S3C2410上Linux 2.6.22的移植,网卡,文件系统都能正常使用,感觉蛮有成就感的。 但如今这个问题不知道如何解决了: 用编译内核和Busybox 1.5.1的编译器编译了一个helloworld,在开发板上用NFS挂载上,运行./hello ...…

查看全部问答>

全球首个太空机器人

$(\'swf_vSx\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://www.tudou.com/v/IJy11e9LXmk/v.swf\'), \'quality\', ...…

查看全部问答>

Quartus II的用法

我写了两段不同的verilog代码来实现同一个功能,现在我想比较哪个代码在FPGA上跑的更快,我在Quartus II里如何看出来呢,请各位指导我一下,谢谢。…

查看全部问答>

红外接收头的问题

目的:制作一个模块,该模块能检测红外发射管发出的红外线,波长为940nm,红外接收头型号为IRM-3638,当有接收头接收到红外光,那么模块上的LED灯就亮 我画的电路图如下:     但是我的板子没有达到预期目标,LED灯不亮,接收头没有 ...…

查看全部问答>