
用stm32cube生成了一个基于stm32f407Vet6和lwip Raw API的http server的例程,试了试工程的ping通没问题,单纯手动新建tcp和udp通信也没问题,但是httpd部分网页打不开 经过一通搜索查找跟踪debug,发现httpd部分80端口tcp连接可正常连接,get请求也能正确进入http_recev,http网页数据一路来到 HAL_ETH_Transmit的WRITE_REG(heth->Instance->DMATPDR, (uint32_t)(heth->TxDescList.TxDesc[heth->TxDescList.CurTxDesc]));这行就完蛋了 网口DMA的SR寄存器报了个ETH_DMASR_FBES错误 对比了一个能运行的例程,虽然http网页数据都在flash里,但是人家的网口发送dma描述符的数据地址开头是0x2开头的,也就是数据被拷进了RAM里,然后给到网口dma 而stm32cube直接生成的例程,http网页数据在网口发送dma描述符里的地址开头是0x08,也就是说给到dma的数据地址是在flash里 而我尝试在lwip的TCP_Write函数中给一个 TCP_WRITE_FLAG_COPY 参数,让TCP_write写数据的时候把写入的数据拷入新建的pbuf进行发送,网页就能顺利打开了 所以目前所有的证据指向了:STM32的网口DMA只能从RAM中提取数据,如果从flash中取数据就会引起dma错误 不知上述理解是否正确
|
重新配置SCB->VTOR = 0x08010000后,再次复位,程序异常,发现不进tick中断,IIC读数卡死在准备查询循环中。
STM32407 使用串口闲时中断+DMA方式接收最大接收字节是多少
uboot初始化IIC1,跳转到应用程序中后,先读一字节AT24C04的数据,然后初始化IIC1(未复位),再读一字节AT24C04时,有概率一直检测到IIC处于busy状态。
STM32F407的flash读写问题
keil调试阶段无法进行仿真,能进到仿真界面,但是无法执行程序,这个怎么解决?
STM32F4的IO口5V容忍问题
询问STM32F407两种USB可以实现的功能
TOF传感器(VL53L5),无法得到data ready
在CUBEMX生成的STM32F407VET6的I2S主机接收模式与I2S主机发送模式能正常运行,如何进行动态调整或者如何实现主机全双工?
STM32F407 多机RS485串口通讯+地址位唤醒+DMA空闲线接收,无法进入中断服务程序。