173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

stm32cube启动参数

keros@mark 2023-03-18 资讯中心

stm32cubemx怎么使用

STM32Cube 是一个全面的软件平台,包括了ST产品的每个系列。平台包括了STM32Cube 硬件抽象层(一个STM32抽象层嵌入式软件,确保在STM32系列最大化的便携性)和一套的中间件组件(RTOS, USB, FatFs, TCP/IP, Graphics, 等等).

直观的STM32微控制器的选择和时钟树配置

微控制器图形化配置外围设备和中间件的功能模式和初始化参数

C代码生成项目覆盖STM32微控制器的初始化符合IAR™,Keil的™和GCC编译器。

对于新的产品设计,我们强烈推荐使用STM32Cube来加速你的开发过程,并为以后的产品平台移植打下良好的基础。

1.新建工程

打开STM32cubeMX软件,点击New Project。选择对应开板MCU(STM32F103ZET6)。

选择工程后进入工程界面,如下图所示。

2. 配置外设。

RCC设置,选择HSE(外部高速时钟)为Crystal/Ceramic Resonator(晶振/陶瓷谐振器)

GPIO口功能选择,PF6,PF7,PF8,PF9为LED1-LED4.找到对应管脚设置为GPIO_Output模式。(黄色引脚为该功能的GPIO已被用作其他功能,可以忽略。绿色表示管脚已使用)

3. 时钟配置

时钟配置采用图形配置,直观简单。各个外设时钟一目了然。STM32最高时钟为72M,此处只有在HCLK处输入72,软件即可自动配置。(RCC选择外部高速时钟)。

4.功能外设配置

在配置框我们可以看到有几个区域,分别对应的功能设置如下

Multimedia(多媒体):音频视频、LCD

Control(控制):定时器

Analog(模拟):DAC、ADC

Connectivity(通讯连接):串口、SPI 、I2C、USB、ETH

SYStem(系统):DMA(直接存储器存取)、GPIO、NVIC、RCC、看门狗

middlewares(中间件): FreeRTOS、FATFS、LwIP、USB

此工程中DMA没用的不用配置,NVIC(嵌套中断向量控制器(Nested Vectored Interrupt Controller))配置中断优先级。RCC不用配置。

GPIO Pin Level (管脚状态):低电平

GPIO mode (管脚模式 ):推挽输出

Maximum output speed (最大输出速度):低速

User Label (用户标签):LED1

更改用户标签,管脚配置图会显示管脚的标签。

4. 功耗计算

这个根据配置的外设计算功耗,不用理会。

5. 生成工程报告

点击Project –Generate Reports或者点击快捷图标生成报告。系统会提示先创建一个工程项目。点击Yes设置工程。

输入工程名,选择工程路径(注意不要出现中文,否则可能出错)。工具链/IDE选择MDK-ARM V5。最后面可以设置堆栈大小,此处默认不作修改。

在Code Generator中找到Generated files框,勾选Generated periphera initialization as a pair of '.c/.h' files per IP。外设初始化为独立的C文件和头文件。

点击生成报告,工程目录下会生成txt文件和pdf文件,里面记录了我们刚才的设置。

6. 生成工程代码

点击Project –Generate Code或者点击快捷图标生成工程代码。

点击Open Project打开工程。到此就配置好工程外设初始化。

点击Build按钮,Build Optput信息框会输出没有错误没有警告。

6. 添加应用程序

在gpio.c文件中可以看到LED管脚的初始化函数。

在stm32f1xx_hal_gpio.h头文件中可以看到GPIO的操作函数。

在main函数中的while循环中添加LED流水灯效果的应用程序。

重新编译程序,点击下载到Open103Z-C开发板。如果提示错误,可以点击图标对Option for Target 的Dubug选项进行修改。(图上选的是ST-LINK)

点击Settings-Flash Download勾选 Reset and Run选项。这样程序下载后自动启动运行,不用再按一下复位或者重新上电才能运行。

程序下载到Open103Z-C开发板。可以看到LED1~LED4依次被点亮,实现流水灯的效果。

总结:STM32Cube提供了固件库,用户可直接调用固件库函数来开发,并且可以很好的实现STM32-MCU全系列的代码一致性。同时STM32CubeMX工具提供的可视化引脚、外设、时钟等配置功能,可以帮助快速完成工程的建立、初始化。大大降低了开发者的工作量。

怎么用stm32cubemx配置oled显示的参数

具体配置过程:

1、打开STM32CubeMX,并选择好相应的芯片。文中的芯片为STM32F207VCT6,选择后如下图:

2、配置RCC时钟、ETH、PA8以及使能LWIP;

由于此处我们的开发板硬件上为RMII方式,因此选择ETH-RMII,若有同志的开发板为MII方式,请参考MII的配置方法,此处只针对RMII;

RCC选择外部时钟源,另外勾选MCO1,软件会自动将PA8配置为MCO1模式,该引脚对于RMII方式很重要,用于为PHY芯片提供50MHz时钟;

使能LWIP;

3、时钟树的相关配置,必须保证MCO1输出为50Mhz,如果这个频率不对会导致PHY芯片无法工作;

我这里因为芯片为207VCT6,为了使MCO1输出为50Mhz,做了PLL倍频参数的一些调整,总体如下:(同志们配置时可根据自己的芯片灵活配置,但需保证MCO1的输出为50Mhz)

4、ETH、LWIP、RCC相关参数设置;

至此,比较重要的都在前面了,但是还有一点仍需要注意,即PA8引脚输出速度,几次不成功都是因为这个引脚没注意。

后续的参数设置可以根据同志们自己的需求分别设置,这里给出我的设置供参考;

ETH参数保持默认,但中断勾选一下;

LWIP参数设置如下:(因为我这里是配置UDP服务器,IP选择静态分配)

5、生成工程,做最后的函数修改;

给生成的工程添加UDP服务器的初始化以及端口绑定等相关函数;

我这里直接将之前的官方例程中的UDP服务器文件加进来,如下:

之后将.c文件添加到用户程序,主函数添加Udp的.h头文件;如下:(udp文件的具体内容在后面给出)

6、主函数还需要添加一下几个函数,在这里不对函数作用及实现原理讲解,仅做添加说明。

附:udp_echoserver相关文件内容(该文件为官方的示例程序,版权归官方,此处做转载)

udp_echoserver.c的内容如下:

/* Includes ------------------------------------------------------------------*/

#include "main.h"

#include "lwip/pbuf.h"

#include "lwip/udp.h"

#include "lwip/tcp.h"

#include string.h

#include stdio.h

/* Private typedef -----------------------------------------------------------*/

/* Private define ------------------------------------------------------------*/

#define UDP_SERVER_PORT 7 /* define the UDP local connection port */

#define UDP_CLIENT_PORT 7 /* define the UDP remote connection port */

/* Private macro -------------------------------------------------------------*/

/* Private variables ---------------------------------------------------------*/

/* Private function prototypes -----------------------------------------------*/

void udp_echoserver_receive_callback(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t *addr, u16_t port);

/* Private functions ---------------------------------------------------------*/

/**

* @brief Initialize the server application.

* @param None

* @retval None

*/

void udp_echoserver_init(void)

{

struct udp_pcb *upcb;

err_t err;

/* Create a new UDP control block */

upcb = udp_new();

if (upcb)

{

/* Bind the upcb to the UDP_PORT port */

/* Using IP_ADDR_ANY allow the upcb to be used by any local interface */

err = udp_bind(upcb, IP_ADDR_ANY, UDP_SERVER_PORT);

if(err == ERR_OK)

{

/* Set a receive callback for the upcb */

udp_recv(upcb, udp_echoserver_receive_callback, NULL);

}

}

}

/**

* @brief This function is called when an UDP datagrm has been received on the port UDP_PORT.

* @param arg user supplied argument (udp_pcb.recv_arg)

* @param pcb the udp_pcb which received data

* @param p the packet buffer that was received

* @param addr the remote IP address from which the packet was received

* @param port the remote port from which the packet was received

* @retval None

*/

void udp_echoserver_receive_callback(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t *addr, u16_t port)

{

/* Connect to the remote client */

udp_connect(upcb, addr, UDP_CLIENT_PORT);

/* Tell the client that we have accepted it */

udp_send(upcb, p);

/* free the UDP connection, so we can accept new clients */

udp_disconnect(upcb);

/* Free the p buffer */

pbuf_free(p);

}

udp_echoserver.h的内容如下:

#ifndef __ECHO_H__

#define __ECHO_H__

void udp_echoserver_init(void);

#endif /* __MINIMAL_ECHO_H */

7、至此,所有的工作完成,编译工程,下载至开发板。由于udp_echoserver中绑定的端口号为7,这里我们通过测试工具测试网络的功能,

stm32cubemx生成代码不自动打开keil5

跳转到MDK5界面,并出现MDK已停止工作提示框,界面呆滞不动了。

此时只能关闭MDK,有时必须调用任务管理器才能关闭此界面。可见由cubemx直接打开mdk不能成功。

尝试由文件夹来打开MDK程序,找到保存程序的文件夹,可见MDK程序已经创建直接双击f072c8t6.uvprojx打开MDK程序

出现刚才停止工作的提示框,可见由文件夹直接打开工程也不行。

找了好多方法来尝试解决,如网上有说中文路径问题,java版本问题等,都没有效果。最后找到方法:用cubemx生成STM32F103的MDK程序(简单的一个空工程即可),因为生成103系列的程序可以直接打开。然后在MDK中重新选择工程路径,打开刚才F072的工程。找到刚才打开失败的F072工程,双击完美打开。

以前由cubemx生成MDK是可以直接打开的,后来突然就不能了。也不知道是哪里来的坑。有此方法能解决,记录下来。

打开CSDN,阅读体验更佳

使用STM32CubeMX生成Keil工程并完成流水灯_甜心猛男的博客_c...

代码生成完以后我们点击打开工程,即可跳到我们的Keil工程中了。 注意到我们左侧的工程栏里,可以看到gpio.c文件还有main.c文件,这些就是依靠STM32CubeMX给我们生成的代码了,怎么样,是不是比我们自己来写代码初始化简单多了方便多了,所以...

STM32 CubeMX 生成 IAR 工程_渡己之道的博客

点击右上方的generate code 生成工程,等待完成后可选择直接打开工程。

最新发布 keil5MDK 及cubeMX安装教程

本篇文章主要带大家安装keil5和cubeMX这两个软件安装完成后就可以开始STM32的开发了。

继续访问

三、如何使用STM32CubeMx构建keil5,并且配置时钟系统

1、STM32时钟系统概述 1.1 时钟系统的概念及意义 1.1.1 概念 时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常见的信号源有晶体振荡器和RC振荡器。 1.1.2 意义 时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变化等动作,外设部件 在时钟的驱动下完成各种工作,比如串口数据的发送,A/D转换,定时器计数等等。因此时钟对于计 算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、震荡...

继续访问

...CubeMX创建KEIL工程_ReadAir的博客_cubemx生成keil工程

1 打开CubeMX新建一个工程 2 选择工程所使用的芯片 3 设置好工程的相关参数 4 时钟配置 5 外设设置 6 生成代码 1 打开CubeMX新建一个工程 File - NewProject,也可以使用快捷键Ctrl+N ...

STM32CubeMx使用教程(二)—— 创建工程、点亮LED_宝玺的博客-CSDN博 ...

首先,打开cubemx 我们点击选择MCU型号,创建工程 选择相应的芯片类型,双击进入工程 进入工程界面,首先配置时钟 ,配置时钟为外部高速时钟,选择晶振,此时可以看到右侧芯片的OSC引脚变成绿色(1.绿色代表已配置 2.黄色代表不可配置,例如电源VBAT...

在STM32CubeMX生成的MDK5工程上添加RT-Thread Nano后双击工程名无法打开.map文件的解决方法

RT-Thread Nano版本和RT-Thread Master版本的关系: RT-Thread Master版本不仅仅是一个实时内核,还包含了丰富的中间层组件。 RT-Thread Nano是RT-Thread Master之上进行剪裁后形成的精简版,去掉了一些组件和各种开发板的BSP,仅保留了最核心的实时内核。 当项目中使用的芯片容量较小,项目也不复杂的时候,无需使用RT-Thread Master版本中完整的组件和软件包等功能,只需最基本的内核部分就可以完成项目的开发。在RT-Thre

继续访问

关于STM32CubeMX生成不了Keil代码的解决办法

关于STM32CubeMX生成Keil代码时弹出but MDK-ARM project generation have a problem的问题 有两种可能: 1、输出路径或文件名包含中文 2、Java环境版本不匹配 下载:下载地址 我的是第一种情况,设置英文路径后就可以生成Keil代码了 ...

继续访问

STM32CubeMX生成的例程工程文件夹介绍_whalefall的博客

STM32CubeMX生成MDK-ARM工程 讨厌水的鱼 760 SMT32CubeMX的安装可以参考博客: 1.打开STM32CubeMX选择新建Project 2.选择单片机型号; 3.根据个人需要配置自己需要的功能,如...

STM32CubeMX 开启一个工程(基于 HAL 库点亮一个 LED)_~莘莘的博客-CSDN...

1、打开 STM32CubeMX,点击File栏目,点击New Project:或者在主界面New Project中点击ACCESS TO MCU SELECTOR:2、搜索并选择要使用的 stm32 芯片型号,点击Start Project:3、点击System Core,点击SYS选择仿真方式,此处我使用ST-Link仿真,...

STM32cubemx建立KEIL5工程时报错:error: L6236E: No section matches selector - no section to be FIRST/LAST.

STM32cubemx建立KEIL5工程时报错:error: L6236E: No section matches selector - no section to be FIRST/LAST. 解决:今天用STM32CUBEMX建立一个工程,但是编译完报错error: L6236E: No section matches selector,点击错误发现定位在下图,这行什么意思呢,*.o的意思就是所有符合.o后缀条件的文件,这里我们要指定为启动文件的目标文件,即startup.s的目标文件startup.o

继续访问

STM32CubeMX生成Keil5工程失败[供参考]

stm32cubemx生成不了keil工程?but MDK-ARM project generation have a problem 报错信息如下: 解决方案: 1.项目名称和路径都是英文【建议】 2.学java的朋友,装过的java jdk13版本太高,重新下载jdk8【必须】 ...

继续访问

嵌入式开发--CubeMX使用入门教程_老李的森林的博客

传统的单片机开发时,需要针对片上外设做各种初始化的工作,相当麻烦。CubeMX是ST公司出品的一款图形化代码生成工具,通过图形化界面,可以非常直观的配置好各种片上外设,时钟,中断,DMA等等各种设备的参数,然后CubeMX可以直接生成初始化代码,...

CubeMX新建工程_qq_42392872的博客_cubemx新建工程

STM32CubeMX系列教程0:创建工程 小白的学习笔记 1213 文章目录1、创建工程2、配置外设开启SWD调试功能使能外部时钟选择GPIO配置GPIO3、配置时钟系统4、工程输出设置工程设置源码输出设置生成源码工程5、写入用户代码编译下载  STM32...

STM32CubeMX 安装后无法启动的问题

1.确认是否安装JDK及JDK的版本 方法:命令提示符下输入java -version或者javac -version,查看所安装的JDK版本,若显示’不是内部或外部命令,则进行环境变量的配置。 2.确认是否正确配置JDK的环境变量 设置系统JAVA_HOME,值为所安装JDK的路径,在path下添加%JAVA_HOME%\bin 3.打开STM32CubeMX,如果还未成功,则删除JDK所在的文件夹下的所有文件,再次点击STM32CubeMX,会弹出界面提示未安装java,...

继续访问

windows STM32CubeMX 打开闪退 打不开 无法启动 解决方法总结

问题 启动STM32CubeMX时,仅出现启动画面,之后没有反应。 可能的原因及解决方法 系统不兼容,右击属性,点击兼容性,“以兼容模式运行这个程序”。多次更换兼容系统,直至打开为止。若未解决,考虑下面的原因。 尝试以管理员身份启动。 Java环境配置存在问题。对于这一点,有很多种原因,比如Java版本不正确或者全局变量配置有误等。 对于第三点 问题一:jdk版本不正确,安装Java8并配置全局变量可解决 问题二:已经安装Java8但依然打不开——全局变量配置有误。 针对问题二,首先进入终端输入指

继续访问

STM32CubxMX配置文件,KEIL打开提示不能打开项目文件的解决方法

配置说明!: 1.如你电脑安装为KEIL4,那么请选择“MDK-ARM V4”; 2.如你电脑安装为KEIL5,那么请选择“MDK-ARM V5”; 配置完成后,请选择 选择GENERATE CODE 后弹出对话如下,请选择 OPEN Project; 至此,配置完成。 针对KEIL打开之后,提示不能打开或读取项目文件的可能说明如下: STM32CubeMX配置的芯片型号与KEIL4/5的不符合...

继续访问

STM32解决方法 | 双击keil的工程目标,不能打开map文件

问题描述: 在使用stm32cubemx生成stm32的工程后,在keil中双击工程目标后,不能打开map文件。 原因: 使用CubeMX生成的Keil工程,生成map文件的路径不在工程文件夹下。通过修改生成.map文件的路径,将路径修改到当前工程文件夹下就能解决问题。 解决方法: ...

继续访问

KEIL5烧录提示” No target connected”,因为STM32CubeMX软件问题

翻出一个旧工程,通过工程文件下的xxx.ioc打开STM32CubeMX修改些东西并Generate code。打开KEIL5工程后说我的Device找不到什么的巴拉巴拉,并且魔术棒里的单片机型号、调试器都是默认值,在重新设置好魔术棒里的参数后,烧录。。。弹出” No target connected”。 我以为是SWD的GPIO口被占用了导致的,这种情况的话只要让它保持复位并在烧录时松开复位即可(也是网上常见的解决No target connected方法),但是我程序中并没有使用这几个IO,而且这种方.

继续访问

keil5打开cubeMX的工程文件时点击文件不显示并且程序卡退[已解决]

项目场景: : 在使用keil uvision5打开cubeMX导出的工程文件的时候,点击main.c时无法显示并且程序卡退,但是打开别的工程文件时正常; 问题描述: ![在这里插入图片描述]() ![在这里插入图片描述](

继续访问

STM32CubeMX5.6.0生成KEIL工程错误

最近更新了STM32CubeMX5.6.0后突然发现STM32CubeMX生成的keil工程文件错误,弹出如下对话框提示 且打开STM32CubeMX生成的工程文件项目后还需要重新选择MCU型号,弹出ERROR:Device not found信息对话框。在网上找了好久资料问题还是没有解决,很多人说路径不能有中文及特殊字符,但自己的软件路径没有上述问题,软件也试着重装过,还是无果,无意间在论...

继续访问

一个可以正常运行的工

本文标签:stm32cube启动参数

产品列表
产品封装
友情链接