STM32CubeMX-90

问题描述:如何利用STM32CubeMX进行STM32开发 本篇文章给大家谈谈一个有趣的事情,以及一个有趣的事情,希望对各位有所帮助,不要忘了收藏本站喔。

如何利用STM32CubeMX进行STM32开发

STM32CubeMX-90的相关图片

cubeMX的主要优点:

1.直观地进行STM32选择2.图形化配置3.C代码项目产生,涵盖STM32初始化部分。兼容IAR, KEIL和GCC编译器4.支持Eclips。

工具/原料

CubeMX软件,CUBE库

电脑

kEIL5.15软件

方法/步骤

到ST官网下载软件包和cube库,并安装好。安装过程比较简单,不多赘述。

点击NEW Project,新建工程,或者file-->new project也可。

下面是选择器件板子,可以根据MCU进行选择,也可以根据board型号选择。

我用的板子是STM32F411RE,所以产商选择STMicroelectric,版本选择Nucleo,型号选择F4系列,便可看到列表中有F411选项了。

双击F411R

如何利用STM32CubeMX进行STM32开发的相关图片

如何利用STM32CubeMX进行STM32开发

1、到ST官网下载软件包和cube库,并安装好。安装过程比较简单,不多赘述。

2、点击NEW Project,新建工程,或者file-->new project也可。

3、下面是选择器件板子,可以根据MCU进行选择,也可以根据board型号选择。

4、我用的板子是STM32F411RE,所以产商选择STMicroelectric,版本选择Nucleo,型号选择F4系列,便可看到列表中有F411选项了。

5、双击F411RE,可以进入pinout引脚配置界面,在这个界面可以配置引脚,可以直接在芯片示意图上配置,十分方便。

6、其他的配置选项如图,有时钟配置,外设配置,功耗计算。

7、时钟配置如图,也是图形化界面,很方便快捷就可以配置好,只需要更改数字就可以得到想要的频率。

8、外设的配置如图,只需要双击要配置的外设即可进行配置,比如我配置GPIO,进入后可见如图窗口,可以选择GPIO的模式,上下拉,输出速度。

9、功耗选项如图,并不常用

10、配置完成后,点击生成工程文件按钮,弹出工程设置窗口,填写工程名,选择目录,选择编译器,可选EWARM,MDK等。最后点击OK,便可生成工程文件了,用编译器打开后,就可以方便地编写代码了,省去了繁琐的配置工作。

怎么用stm32cubemx配置oled显示的参数的相关图片

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

在下面列表中选择STM32F429ZITx,STM32F429/439,最后点击OK,如图3所示。这样就建立起了STM32F429I-DISCO评估板的工程,这个工程已经根据评估板设置好了,然后可以生成相应的代码。

5,为了演示如何使用STM32CubeMX软件,关闭刚刚建立的工程,从头建立一个新的工程。

2,然后在MCU Filter中依次选择STM32F4,在New Project对话框中选择Mcu Selector标签页, 第一步,建立并保存工程。

3,启动STM32CubeMX软件,界面如图2所示。

4,点击New Project,在New Project对话框中选择Board Selector标签页,在这里有各种ST评估板可以选择,我们选择STM32F429I-DISCO。点击New Project1,下面以流水灯为例说明STM32CubeMX软件的使用。

STM32CubeMX 可以汉化吗?的相关图片

STM32CubeMX 可以汉化吗?

具体配置过程:

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,这里我们通过测试工具测试网络的功能,

什么是 STM32Cube?

STM32CubeMX 可以汉化的。STM32CubeMX从V5.1.0版本更新以后就支持中文界面了。

概要

A.增加对STM32WB系列的支持。

STM32WB是双核、多协议无线微控制器,提供STM32Cube_FW_WB_V1.0.0软件包。

B.添加了对第一个MPUs(STM32MP1系列)的支持。

STM32MP1是Cortex®-A7和Cortex®-M4多核,高性能的微处理器。

C.性能增强以改善用户体验

D.更新用户界面

更新字体、进度条、面包屑导航等。

E.更新Graphics

TrueSTUDIO支持TouchGFX设置。

原文地址:http://www.qianchusai.com/STM32CubeMX-90.html

cc/小桥流水圆形头像,小桥流水微信头像图片

cc/小桥流水圆形头像,小桥流水微信头像图片

水星d26,水星d268g支持wifi6吗

水星d26,水星d268g支持wifi6吗

vetted-100

vetted-100

慕和网络-60,慕和网络科技有限公司

慕和网络-60,慕和网络科技有限公司

racemic,racemic epinephrine

racemic,racemic epinephrine

错欢-120,错爱成欢全文阅读全文

错欢-120,错爱成欢全文阅读全文

lw/木地板楼梯收口,强化地板楼梯收口视频

lw/木地板楼梯收口,强化地板楼梯收口视频

activation,activation licensing service

activation,activation licensing service

D4707-0

D4707-0

time-sensitive-70

time-sensitive-70