636|5

31

帖子

0

TA的资源

一粒金砂(中级)

【极海APM32F407 Tiny Board】U盘操作 [复制链接]

APM32F407包含两个USB接口,支持USB低速、全速、高速模式,并且内置了高速PHY。相比STM32外置PHY的做法极大简化了外围电路设计。

本次评估板引出的USB主端口为OTG-HS,分配在PB14,PB15两只脚。如下图所示:

U7.png

官方提供的HOST/MSC例程给出了操作U盘的基本演示。
需要添加到工程的USB文件如下:

UF.png

USB的处理大概可分为以下几点:
1、中断处理

void OTG_HS1_IRQHandler(void)
{
    USBH_OTG_IsrHandler(&usbHostHandler);
}

2、任务创建
由于U盘操作是一个含有阻塞状态的任务,使用RTOS能够避免出现其它任务无法响应的状况。为达到该效果,USB处理需要设为较低优先级任务。本测试将其设置为系统最低优先级,堆栈为2KB。

osThreadDef(thd_usb, usb_task, osPriorityLow, 1, 0x800);
obj_init_order5(usb_task_creat);
void usb_task_creat(void)
{
    os_obj.tid_usb_task = osThreadCreate(osThread(thd_usb), NULL);
}

3、USB状态扫描
该步骤主要用来检测USB设备是否就绪

    while (1)
    {
        USB_HostProcess();
        USB_HostUserApplication();
        
        osDelay(1);
    }

4、USB应用处理
设备就绪后,进入应用处理状态:
按板载两个按键分别执行U盘文件浏览和U盘读写操作。

具体操作代码较多,此处不做详述,有兴趣的小伙伴可以下载帖尾代码进行测试。
读写操作创建两个文件:
APM32USB.PDF
Host_MSC_Test.txt
如下图所示:

U9.png

APM32USB.PDF文件内容截取部分,如下所示:

U5.png

测试代码托管在gitee平台:

链接已隐藏,如需查看请登录或者注册

最新回复

感谢分享源码,大佬用心了,期待精彩继续。  详情 回复 发表于 2023-6-1 08:47

回复

4837

帖子

236

TA的资源

管理员

点赞,有空最好补个演示视频

上次有个测评评委看了,说没有演示不太好判断测评实现结果。

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽

点评

可以,回头录制补上  详情 回复 发表于 2023-5-30 16:56

回复

4166

帖子

0

TA的资源

版主

高速那个通信能达到多块?


回复

263

帖子

0

TA的资源

一粒金砂(高级)

帮顶,顶起来~楼主加油~

个人签名

gitee/casy


回复

31

帖子

0

TA的资源

一粒金砂(中级)

nmg 发表于 2023-5-30 08:58 点赞,有空最好补个演示视频 上次有个测评评委看了,说没有演示不太好判断测评实现结果。

可以,回头录制补上


回复

4578

帖子

3

TA的资源

版主

感谢分享源码,大佬用心了,期待精彩继续。

回复
您需要登录后才可以回帖 登录 | 注册

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表