- 博客(0)
- 资源 (3)
- 收藏
- 关注
nucleo-f767 STM32CubeMX + SDIO读取TF卡
该程序直接读取( SDIO 4bit、dma方式)sd卡根目录下所有文件到usart3(115200)
已测试4gb/1gb、fat32格式内存卡可用,长文件名也能识别。
这是cubemx生成的代码,基于STM32Cube_FW_F7_V1.11.0
!!!!!!
注意:直接cubemx生成的代码有一个bug,需要在stm32f7xx_it.c的tf读写dma中断中添加回调函数,修改后代码如下:
/**
* @brief This function handles DMA2 stream3 global interrupt.
*/
void DMA2_Stream3_IRQHandler(void)
{
/* USER CODE BEGIN DMA2_Stream3_IRQn 0 */
/* USER CODE END DMA2_Stream3_IRQn 0 */
HAL_DMA_IRQHandler(&hdma;_sdmmc1_rx);
/* USER CODE BEGIN DMA2_Stream3_IRQn 1 */
BSP_SD_ReadCpltCallback();
/* USER CODE END DMA2_Stream3_IRQn 1 */
}
/**
* @brief This function handles DMA2 stream6 global interrupt.
*/
void DMA2_Stream6_IRQHandler(void)
{
/* USER CODE BEGIN DMA2_Stream6_IRQn 0 */
/* USER CODE END DMA2_Stream6_IRQn 0 */
HAL_DMA_IRQHandler(&hdma;_sdmmc1_tx);
/* USER CODE BEGIN DMA2_Stream6_IRQn 1 */
BSP_SD_WriteCpltCallback();
/* USER CODE END DMA2_Stream6_IRQn 1 */
}
如果有问题。请联系我
引用:http://www.stmcu.org/module/forum/forum.php?mod=viewthread&tid=608199&highlight=CUBE
2018-04-18
nucleo-f767+cubemx+lwip v2.03+ucosiii v3.04.05可以ping通
UCOSIII+lwip系统工程模板
实验内容:
硬件资源:
NUCLEO-F767
1、led灯PG8
2、usart3(作为printf输出)
3、eth
注意:
1、 UCOSIII中以下优先级用户程序不能使用,这些优先级分配给了UCOSIII的5个系统内部任务。
优先级0:中断服务服务管理任务 OS_IntQTask()
优先级1:时钟节拍任务 OS_TickTask()
优先级2:定时任务 OS_TmrTask()
优先级OS_CFG_PRIO_MAX-2:统计任务 OS_StatTask()//用户自定义 开启/关闭
优先级OS_CFG_PRIO_MAX-1:空闲任务 OS_IdleTask()
优先级3:开始任务
优先级4:lwip处理和硬件输出任务(反正不用改)
用户任务最好大于等于5
2、 cubemx里生成代码前不要去掉freertos(不然lwip的代码可能会不正常),
生成之后需要手动完成以下工作:
1、opt.h #define LWIP_TCPIP_CORE_LOCKING 0
#define LWIP_RAW 1
2、以下几个文件建议直接替换
cc.h
sys_arch.c
sys_arch.h
ethernetif.c
lwioopts.h(小部分修改)
3、可能有一个bug,运行一段时间可能就无法ping通了(不排除我调试的时候有东西碰到了)
4、ping的时候会有printf:icmp_input: ping icmp_input: ICMP type 5 code 1 not supported.(有兴趣研究,不感兴趣忽略,关闭LWIP_DEBUG可以忽略)
引用:
正点原子@ALIENTEK 网络实验3 LWIP带UCOSIII操作系统移植
STM32F767 LWIP开发手册V2.0.pdf
作者:
小黑 2018/4/1
有问题或者建议直接联系我
2018-04-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人