完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
非常感谢你的观看,我在用STM32CUBEMx +FreeRTOS+LWIP遇到一些问题,希望能指导一下
配置:cpu是stm32f107vct6 、PHY是DP83848、LWIP是UDP通信,选择disable DHCP 我用了两个版本的CUBEMx,建立了两个工程(两个工程里面用的udpclient.C.H和83848.C.H都是一样的) 我来列举一下我的问题 1.开始使用的是STM32CubeMX-4.15.0版本 我建立了OldETH文件的工程,在 MX_LWIP_Init()之后使用UDP_client_init(server_ip,server_port)来绑定IP和port,我成功的ping通了,udp中断接收数据没问题,但是我udp发送数据的时候出问题了。 我是通过UDP_DataSend(u8* buf,u8 len)这个函数来发送数据的, uint8_t UDPData[20]="I am udp client!rn"; void UDP_DataSend(u8* buf,u8 len) { struct pbuf *udp_pbuf; udp_pbuf=pbuf_alloc(PBUF_RAW,len,PBUF_RAM); if(udp_pbuf != NULL) { udp_pbuf -> payload = buf; udp_send(udp_PCB,udp_pbuf); //udp_pcb是 UDP_client_init建立的udp控制块 } pbuf_free(udp_pbuf); } 当我发送测试数据UDP_DataSend(UDPData,sizeof(UDPData)) 这个是没有问题的, 然而当我要发送我以太网接受回调中所接受到的数据时,UDP_DataSend(udpReceiveData.buf,udpReceiveData.len)出错了,我必须将UDP_DataSend函数改成下面这样才能发送成功,要不然就会进入HardFault_Handler出错中断里面,这是我不能理解的 void UDP_DataSend(u8* buf,u8 len) { struct pbuf *udp_pbuf; udp_pbuf=pbuf_alloc(PBUF_RAW,len,PBUF_RAM); if(udp_pbuf != NULL) { uint8_t UDPDataSendBuf[256]; memcpy(UDPDataSendBuf,buf,len); udp_pbuf -> payload = UDPDataSendBuf; udp_send(udp_pcb,udp_pbuf); //udp_pcb是 UDP_client_init建立的udp控制块 } pbuf_free(udp_pbuf); } 2.使用的是新版STM32CubeMX-4.25.0版本 建立了NewETH文件里面的工程,在 MX_LWIP_Init()之后使用UDP_client_init(server_ip,server_port)来绑定IP和port,这时候我也ping通了,也能接收数据了。问题来了,现在不管是发送测试数据还是发送以太网接受回调中所接受到的数据都进入HardFault_Handler出错中断里面。 以上就是我现在遇到的问题,感谢你的帮忙 |
|
相关推荐
1个回答
|
|
问题描述:在使用STM32CubeMX-4.15.0版本建立的工程中,使用UDP进行通信时,发送数据会导致进入HardFault_Handler中断。 可能的原因及解决方案: 1. 堆栈溢出:在FreeRTOS中,每个任务都有自己的堆栈。如果任务的堆栈空间不足,可能会导致HardFault。请检查您的任务配置,确保为每个任务分配了足够的堆栈空间。 2. 内存分配问题:在LWIP中,需要为TCP/IP协议栈分配内存。如果内存分配不足,可能会导致HardFault。请检查您的LWIP配置,确保为内存池分配了足够的空间。 3. 中断优先级配置:在STM32中,中断优先级配置不正确可能会导致HardFault。请检查您的中断优先级配置,确保没有冲突。 4. LWIP配置问题:请检查您的LWIP配置,确保所有参数都正确设置。例如,确保您的网络接口配置正确,包括IP地址、子网掩码、网关等。 5. 代码问题:检查您的UDP发送代码,确保没有非法内存访问、数组越界等错误。 6. 固件版本问题:您提到使用了两个版本的STM32CubeMX。请确保您使用的是最新版本的固件,因为新版本可能修复了旧版本中的一些已知问题。 7. 硬件问题:虽然不太可能,但硬件问题(如内存损坏)也可能导致HardFault。请检查您的硬件连接,确保一切正常。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1632 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1559 浏览 1 评论
985 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
688 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1605 浏览 2 评论
1869浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
653浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
523浏览 3评论
540浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
509浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 15:33 , Processed in 0.994814 second(s), Total 49, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号