当前位置:编程学堂 > 如何在stm32f407核心板(stm32h7核心板)上安装OLED

如何在stm32f407核心板(stm32h7核心板)上安装OLED

  • 发布:2023-09-30 20:07

如何在stm32f407核心板(stm32h7核心板)上安装OLED

1 {IMG_1: Ahr0CHM6LY93D3CUA2VPBDM0NS5JB20VEMJFDXNLCNMVDXBSB2FKLZIWMDGVMJAYMZA4MDUXNJMJI4NZYWLMPWZW ==/}

stm32如何同时驱动OLED和LCD屏幕

当然可以,但是需要注意信号电压和电源电压。不同厂家的LCD1602模块可能有不同的电源电压和驱动电压,可能是5v或3.3V。您需要检查您正在使用的那些。模块需要多高的电压。如果不确定的话,建议你用两个电阻来选择供电电压,然后在stm32和LCD的连接处加一个上拉电阻。上拉电压就是你刚才选择的那个,这样无论电压是多少,你都可以选择电源电压,更不用说3.3V了。如果是5V供电,需要将对应的IO口设置为开漏输出,这样stm32才能输出5V高电平信号

如何使用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服务器初始化和端口绑定等相关功能;
I 这里直接添加之前官方例程中的UDP服务器文件,如下:
之后将.c文件添加到用户程序中,将Udp的.h头文件添加到main函数中;如下:(udp文件的具体内容在(后面给出)
6,主要函数还需要添加几个函数,函数的功能和实现原理这里就不解释了,只做说明
附件:udp_echoserver相关文件内容(该文件为官方示例程序,版权归官方所有,转载于此)
udp_echoserver.c内容如下:
/*包括 ------------------- ----------------------------------------------------------*/
#include "main.h"
#include "lwip/pbuf.h"
#include "lwip/udp.h"
#include "lwip/tcp.h"
#include
#include
/* 私有 typedef ----------- ------------------------------------------------*/
/* 私有定义 ---------------------------------------------------------- -----------------*/
#define UDP_SERVER_PORT 7 /* 定义UDP本地连接端口 */
#define UDP_CLIENT_PORT 7 /* 定义UDP远程连接端口 */
/* 私有宏---------------------------------------- ------------------*/
/* 私有变量 -------------------- ----------------------------------*/
/* 私有函数原型 --- --------------------------------------------------------*/
无效udp_echoserver_receive_callback(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t *addr, u16_t port);
/* 私有函数 ------------------ ---------------------------------------*/
/**
* @brief 初始初始化服务器应用程序。
* @param None
* @retval None
*/
void udp_echoserver_init(void)
{
struct udp_pcb *upcb; err_t 错误;

/* 创建新的 UDP 控制块 */
upcb = udp_new();

if (upcb)
{
/* 绑定upcb 到 UDP_PORT端口 */
/ *使用ip_addr_any允许任何本地接口 */
err = udp_bind(upcb,ip_addr_any,udp_server_port);

{
/* 设置 upcb 的接收回调 */
udp_recv(upcb, udp_echoserver_receive_callback, NULL);
}
}
}
/**
* @brief 当端口 UDP_PORT 上接收到 UDP datagrm 时,调用此函数。
* @param arg 用户提供的参数 (udp_pcb.recv_arg)
* @param pcb 接收数据的 udp_pcb
* @param p 接收到的数据包缓冲区​​ * @param addr 远程 IP 地址接收数据包的 m
* @param port 接收数据包的远程端口
* @retval None
*/
void udp_echoserver_receive_callback(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t *addr, u16_t port)
{
/* 连接远程客户端 */
udp_connect(upcb, addr, UDP_CLIENT_PORT);

/*告诉客户端我们已接受它 */
udp_send(upcb, p);
/* 释放 UDP 连接,以便我们可以接受新客户端 */
udp_disconnect(upcb);
/* Free p 缓冲区 */
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,这里我们使用测试工具来测试网络的功能,

stm32f407vet6驱动oled12864问题

1。判断电路连接是否正确
2。判断电源是否正常、复位是否正常、D/C使能是否正常
3。判断SPI是否有输出
初始化SPI后添加如下语句,用示波器测量MOSI和SCK,看是否有输出,数值是否正确,触发波形是否正确(通常 MOSI 数据在 SCK 的上升沿输入)
while(1)
{
LCD_WrDat(0xca) ;
}
4. OLED初始化是否正确?
详细参考:
http://www.sychzs.cn/wisepragma/article/details/26968093

以上就是小编对stm32f407核心板上如何安装OLED(stm32h7核心板)及相关问题的解答。希望对大家如何在stm32f407核心板上安装OLED(stm32h7核心板)有所帮助!

相关文章

最新资讯