问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-30 16:32

我来回答

2个回答

热心网友 时间:2022-06-27 13:27

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

热心网友 时间:2022-06-27 13:28

我做过stm32和msp430,我觉得问题应该出在以下几个方面:1.I/O配置错误:单片机与屏驱动芯片相连的I/O变了,在程序移植后没有修改,造成数据的读写错误。2.延时程序:STM32主频是72MHz,而MSP430是8MHZ,相差很多,原来的演示程序不试用430。在对驱动芯片读写过程中调用延时函数,由于延时不匹配,造成读写失败。
怎么用stm32cubemx配置oled显示的参数

1、打开STM32CubeMX,并选择好相应的芯片。文中的芯片为STM32F207VCT6,选择后如下图:2、配置RCC时钟、ETH、PA8以及使能LWIP;由于此处我们的开发板硬件上为RMII方式,因此选择ETH-RMII,若有同志的开发板为MII方式,请参考MII的配置方法,此处只针对RMII;RCC选择外部时钟源,另外勾选MCO1,软件会自动...

stm32cubeide stm32cube设置 stm32cubeide教程 stm32cube库 stm32cubeIDE中文手册 stm32oled
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
北方人去南方游玩该去哪里呢?可以推荐一些地方吗? 春节去南方哪里旅游比较好 过年出行旅游注意事项 办公室租植物多少一天 为什么手机会被远程监控? 为什么会有人远程监控别人的手机呢! 麦肯锡7s模型分析案例 南方城一期基本信息 南方城二期基本信息 Linux服务器配置与管理编辑推荐 农历45年三月二十九的公历是几个几号? 我用stm32103单片机,怎么用keil32库函数把pwm波显示oled。不知怎么弄在oled。 什么是OLED? 群聊视频声音变小了怎么办 5尺2寸6分是厘米 5尺二寸等于多少厘米 联想拯救者屏幕黑到看不见 edifier蓝牙耳机中文名字叫什么 我老婆太烂赌怎么办、 抹灰中的打灰饼,冲筋是哪个规范的规定? 我的女友天天都爱打麻将,我该怎么办。 我女朋友特别喜欢打麻将 老婆爱打牌,我想离婚,我是不是正常的? 我老婆爱打牌,有什么办法叫她不打呢? 抹墙时为什么要冲筋,有什么作用? 冲筋是抹灰接槎吗? 讨了个爱打麻将的老婆 怎么办 为了快,物流快递行业都选了什么协同OA系统 有一个爱打牌的老婆,我到底要不要和她离婚? 小白鞋鞋尖的网被烧了一个洞,怎么修复 我几年前买的耐克鞋,鞋面是有网格的现在网从格边缘脱裂出来,能修复吗? OLED数据显示的问题 双吸泵的工作原理及结构是什么? 离心泵的工作原理? 轴心泵是干什么用的? 中开泵可以说详细点么? 工作水泵是怎么规定的 谁能告诉我为什么离心式水泵叶轮转轴中心会形成低压。别和我说原理,就是原理不明白 特斯拉无扇泵,泵的出口,偏于轴心什么有什么意义呢,与离心泵工作方式一样么,或者是加压还是什么原理,令求 什么是水泵轴心线 泵的轴心高度如何定义?如何测量? 求一篇商务谈判课程的心得体会,2000字左右,越快越好,谢谢 小子虚心求教—大学商务谈判的案例分析 模拟谈判适用于哪种场合? 我的王者荣耀体验服我登进去,它显示 你不是测试白明单用户 什么意思啊! 模拟商务谈判,针对这则材料我作为财务部应该怎么去阐述我的观点跟我的优势 进入王者荣耀体验服的时候开始游戏的时候为什么是白不是白名单测试 我下载了王者荣耀体验服,但是不能登上,说我不是白名单测试用户。 华为p9 plus怎么拍照虚化背景? 流量卡需要有手机信号吗? 是不是只有中国联通手机号才能买联通流量卡?