10、STM32H750驱动W5500

本文会利用W5500实现服务器,并自动分配网络IP地址,使用SPI轮询方式和SPI+DMA方式,实现网络通信
不会讲解W5500代码,只是快速搭建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一、SPI轮询方式驱动W5500

1、CubeMx配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

由于引脚没有硬件上拉电阻,所以使用内部上拉
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
生成工程

2、代码移植编写

复制代码文件到工程路径下:此文件可以从后面工程文件获取
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
修改引脚端口
在这里插入图片描述
为DHCP所需定时器实现回调函数调用
在这里插入图片描述

main.c主函数调用W550配置,并启动服务器

/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file           : main.c
  * @brief          : Main program body
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; Copyright (c) 2023 STMicroelectronics.
  * All rights reserved.</center></h2>
  *
  * This software component is licensed by ST under BSD 3-Clause license,
  * the "License"; You may not use this file except in compliance with the
  * License. You may obtain a copy of the License at:
  *                        opensource.org/licenses/BSD-3-Clause
  *
  ******************************************************************************
  */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "spi.h"
#include "tim.h"
#include "usart.h"
#include "gpio.h"

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "w5500.h"
#include "W5500_conf.h"
#include "socket.h"
#include "utility.h"
#include "dhcp.h"
#include "tcp_demo.h"

/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */

/* USER CODE END PTD */

/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD */

/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */

/* USER CODE END PM */

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

/* USER CODE BEGIN PV */

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
/* USER CODE BEGIN PFP */

/* USER CODE END PFP */

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */

/* USER CODE END 0 */

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_SPI1_Init();
  MX_TIM6_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
	gpio_for_w5500_config();						/*初始化MCU相关引脚*/
	reset_w5500();											/*硬复位W5500*/
	set_w5500_mac();										/*配置MAC地址*/
  socket_buf_init(txsize, rxsize);		/*初始化8个Socket的发送接收缓存大小*/
  IP_AutoSet(3500);
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    do_tcp_server();
  }
  /* USER CODE END 3 */
}

在这里插入图片描述
收发回显测试
在这里插入图片描述
收发速度35.5KB/秒

二、SPI+DMA方式驱动W5500

1、CubeMx配置

沿用上一个工程得基础直接修改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
生成代码

2、代码移植编写

文件复制:
在这里插入图片描述
其余代码不用修改
记得把printf打印所需要得库勾选
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可见接收依旧很慢
主要是发送会增加,向上位机发送数据速度测试达到200多KB/s

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、工程文件下载

21.0_W5500_所需文件
链接:https://pan.baidu.com/s/1HpFj8-_SDYefrTu02EATtg
提取码:9knm
21.1_STM32H750_W5500_SPI轮询方式
链接:https://pan.baidu.com/s/1Lc_plrbWAREKgrgDq-VhZA
提取码:5ee7
21.2_STM32H750_W5500_SPI_DMA方式
链接:https://pan.baidu.com/s/1riEKrhBvXRQbc8sNRkNS5Q
提取码:dytm

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: STM32H750VBT6是一款由STMicroelectronics推出的高性能微控制器。要驱动TFT液晶显示器,我们需要完成以下几个步骤: 1.准备硬件:首先,我们需要连接TFT液晶显示器到STM32H750VBT6微控制器。通常情况下,TFT显示器会通过并行接口或SPI接口与微控制器进行连接。因此,确保正确地连接了TFT显示器与微控制器的对应引脚。 2.配置引脚:接下来,我们需要在STM32H750VBT6上配置相关引脚。根据TFT显示器的接口类型,选择合适的GPIO引脚,将其配置为相应的功能模式,以便与TFT显示器进行通信。 3.编写驱动程序:使用STM32H750VBT6的开发工具,如STM32CubeIDE等,编写驱动程序。驱动程序的作用是通过控制引脚的状态和发送相应的命令和数据,与TFT显示器进行通信,以实现数据的显示和控制。 4.初始化配置:在驱动程序中,需要进行初始化配置,包括设置TFT显示器的分辨率、像素格式、时钟频率等。此外,还需要配置TFT显示器的驱动模式、背光控制等。 5.绘制图像:一旦驱动程序成功配置,就可以使用相关接口函数进行图像的绘制。通过在驱动程序中调用相应的API函数,可以实现在TFT显示器上显示文本、图形和图像等。 6.调试和优化:在显示过程中,可能会出现一些问题,如图像显示不正确、颜色失真等。在这种情况下,我们需要对驱动程序进行调试和优化,以确保TFT显示器正常工作。 总而言之,驱动TFT液晶显示器需要正确连接硬件、配置引脚,编写驱动程序并进行初始化配置,最后通过调试和优化确保正常显示。通过以上步骤,我们可以实现STM32H750VBT6对TFT显示器的驱动。 ### 回答2: 要驱动TFT(薄膜晶体管)显示屏,我们可以使用STM32H750VBT6微控制器。首先,我们需要设置GPIO引脚和时钟,并初始化LCD控制器。然后,我们可以通过编程来配置FSMC控制器,该控制器可用于驱动外部存储器,包括TFT。 在配置FSMC控制器之后,我们需要根据TFT的规格来设置参数,例如颜色模式、像素分辨率等。这些参数可以通过命令和数据写入LCD控制器的寄存器来配置。根据TFT的接口类型(如RGB、SPI等),我们需要相应地设置数据传输方式。 一旦配置完成,我们可以通过向LCD控制器发送像素数据来显示图像。这涉及将图像数据写入FSMC外部存储器接口,并设置控制信号以选择TFT的特定像素。为了获得平滑的图像过渡和动态效果,我们可以使用双缓冲技术来存储多个图像帧。 此外,为了增加用户交互性,我们可以将触摸屏与TFT结合使用。通过配置STM32的触摸屏控制器,并连接触摸屏传感器,我们可以实现触摸输入功能。 总结起来,驱动TFT显示屏需要完成以下步骤: 1. 设置GPIO引脚和时钟,并初始化LCD控制器。 2. 配置FSMC控制器,包括设置参数和数据传输方式。 3. 通过向LCD控制器发送像素数据来显示图像。 4. 使用双缓冲技术以获得平滑的图像过渡和动态效果。 5. 结合触摸屏控制器和传感器以实现触摸输入功能。 以上是对于使用STM32H750VBT6驱动TFT的基本步骤,具体的实现可能会因特定的TFT型号和应用需求而有所区别。实施时应参考相关技术文档和资料,并根据具体情况进行适当的调整和优化。 ### 回答3: 要驱动STM32H750VBT6控制器上的TFT液晶显示屏,需要进行以下步骤: 1. 硬件连接:将TFT液晶屏的引脚与STM32H750VBT6控制器的引脚连接。按照液晶屏的规格书,连接液晶屏的数据总线(像RGB、SPI、I2C等)、控制信号(像时钟、复位、使能等)。确保连接的引脚是正确的,并且按照正确的电气特性连接。 2. 初始化控制器:通过配置控制器的寄存器和设置寄存器的值,来初始化控制器。这些寄存器包括控制显示区域、像素格式、像素时钟、控制信号等。根据液晶显示屏的规格,设置控制器的寄存器为合适的值。 3. 数据写入:通过控制器的数据总线(像RGB、SPI、I2C等)向液晶屏发送数据。这些数据包括要显示的图像的像素值、控制信号等。可以通过控制器的寄存器设置像素颜色、显示坐标等。 4. 刷新显示:在液晶屏上显示图像之前,需要将数据刷新到屏幕上。这可以通过控制器的寄存器来触发刷新操作。控制器将根据设置的寄存器值,将数据从内存写入液晶屏中的显示RAM。 5. 控制屏幕显示:如果需要,控制器可以设置液晶屏的亮度、对比度等显示参数。这些参数可以通过控制器的寄存器来设置,以满足显示要求。 通过上述步骤,可以将STM32H750VBT6控制器连接并驱动TFT液晶显示屏,实现图像的显示功能。但是具体的驱动代码会根据使用的液晶显示屏的类型和控制器的规格书来编写。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值