当前位置: 首页 > article >正文

STM32F767+LWIP+CubeMX配置中断模式

一、环境准备

电脑系统:Windows 10 专业版 20H2

IDE:Keil v5.35、STM32CubeMX v6.12.1

测试硬件:STM32F767

二、测试步骤

1、测试目的

最初使用轮循模式,但满足不了需求,重新配置为中断模式

注意Hal库V1.2.10版本,无法配置中断模式(具体哪些版本,自己遇到了再检查吧)

Hal库V1.3.1版本,可以配置中断模式,自己注意升级吧

2、配置基本参数

2.1配置SYS

2.2配置RCC

3、配置ETH

配置lwip,需要先Polling Mode,其他配置自己决定吧,此处默认

引脚大同小异,也需要检查自己的电路,注意复位引脚。

网口复位引脚需要注意,没有复位,PHY可能不工作,表现为网口指示灯不闪烁。

4、配置中间件lwip

开启使能后,使用静态IP

开启状态反馈

配置PHY

5、生成工程代码

编译正常,说明基本配置没啥问题。

没有配置printf,先屏蔽lwip中打印部分,不然运行异常。

在 HAL_ETH_MspInit 中添加复位

	HAL_GPIO_WritePin(ETH_RESET_GPIO_Port, ETH_RESET_Pin, GPIO_PIN_RESET);
	HAL_Delay(100);
	HAL_GPIO_WritePin(ETH_RESET_GPIO_Port, ETH_RESET_Pin, GPIO_PIN_SET);

在main中添加 MX_LWIP_Process();  ,此处因为加指示灯,延时200ms

烧录工程后,可以观察网口闪烁,再ping

6、修改工程为中断模式

CubeMX中打开中断,其他不变(R下Mode 仍是 Polling Mode),优先级此处不调

重新生成工程后,

①检查 ethernet_link_check_state 中 使用  HAL_ETH_Start_IT(&heth);

②将 MX_LWIP_Process 中的 ethernetif_input(&gnetif); 移动到网口中断

三、运行效果

重新烧录后,ping时间就很短了,其他服务器、客户端模式,可以自己改吧

四、工程资料下载

F7LwipInterrupt.rar: (访问密码: 1666)icon-default.png?t=O83Ahttps://url48.ctfile.com/f/33868548-1445643637-6877df?p=1666
 


http://www.kler.cn/a/488123.html

相关文章:

  • stringRedisTemplate.execute执行lua脚本
  • 快速实现一个快递物流管理系统:实时更新与状态追踪
  • RK3568 Android 13 内置搜狗输入法小计
  • python学opencv|读取图像(二十九)使用cv2.getRotationMatrix2D()函数旋转缩放图像
  • 【llm/ollama/qwen】在本地部署qwen2.5-coder并在vscode中集成使用代码提示功能
  • 机器学习基础-概率图模型
  • 【C++经典例题】求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句
  • 【LeetCode】每日一题 2024_1_10 统计重新排列后包含另一个字符串的子字符串数目 II(滑动窗口)
  • 10-pyecharts绘图
  • Spring bean的生命周期和扩展
  • 践行“金融为民” 平安养老险迎来理赔新篇章
  • 使用Postman实现API自动化测试
  • 【股票数据API接口02】如何获取股票历史交易数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据
  • 基于QT和C++的实时日期和时间显示
  • Vue2:el-table中的文字根据内容改变颜色
  • Spring——自动装配
  • C++笔记之`size_t`辨析
  • Untiy中如何嵌入前端页面,从而播放推流视频?
  • Colossal-AI:深度学习大规模分布式训练框架
  • 光伏风电新技术进展:迈向能源新时代
  • 如何在 Ubuntu 22.04 上安装和配置邮件服务器教程
  • 华晨宇新专辑《量变临界点》上线 开启自我觉知的音乐旅程
  • 灵活运用事务回滚,快捷处理多张数据表格
  • 14_Redis事务
  • 初学者关于对机器学习的理解
  • Go语言的循环实现