STM32F4D+U盘+MP3 Player

[复制链接]
10585|57
 楼主| xfcjava2 发表于 2012-11-20 18:30 | 显示全部楼层 |阅读模式
STM32F4D+U盘+MP3 Player  软解压,音质不错!!!

硬件:使用 STM32F4 Discovery 开发板,通过USB "A" 母 去 MICRO USB 公(OTG)连接线,外部连接U盘,具体连接如下:
软件:采用FreeRTOS嵌入式操作系统,以及FatFS文件系统。

1、连接U盘到 STM32F4 Discovery开发板接口如下:

  CN5----> MICRO USB 公-----USB "A" 母---->U盘

  另外:RS232连接如下:
              PA2-----------> TX
              PA3-----------> RX

2、 USB "A" 母 去 MICRO USB 公- 连接线图      [local]1[/local]


3、实物连接图片:
      STM32F4_UDisk_MP3_1.jpg   
4、程序运行图片----UART输出 [波特率:115200bps]
      STM32F4D_UDisk_MP3_Player.jpg
5、测试程序hex文件如下:
      hex文件.rar (70.02 KB, 下载次数: 52)
6、程序下载工具:
    STM32 ST-LINK Utility_v2.3.0.exe , 自己可以到ST官网上下载
 楼主| xfcjava2 发表于 2012-11-20 18:38 | 显示全部楼层
7、keil 工程项目文件: (注意: 部分代码采用了库文件,请大家包涵)      
   STM32F4D_UDisk_MP3_Player.rar (2.29 MB, 下载次数: 570)
 楼主| xfcjava2 发表于 2012-11-20 18:41 | 显示全部楼层
识别U盘,一点问题也没有。
我测试过:  
     1、最古老的u盘,容量是128M的
     2、容量为2G的金士顿U盘
     3、容量为8G的金士顿U盘
 楼主| xfcjava2 发表于 2012-11-20 18:48 | 显示全部楼层
2、 USB "A" 母 去 MICRO USB 公- 连接线图          USB A母去MICRO USB公---连接线.jpg
qqatscau 发表于 2012-11-20 21:04 | 显示全部楼层
lwg998 发表于 2012-11-20 22:35 | 显示全部楼层
爽试试看
 楼主| xfcjava2 发表于 2012-11-20 23:47 | 显示全部楼层
更新后的测试hex文件:
   (说明:可以通过User按键选择下一首曲目播放,功能上有些加强,有些bug也已修正。)


附件: F4D_UDisk_MP3_hex_V1.1.rar (67.84 KB, 下载次数: 84)
 楼主| xfcjava2 发表于 2012-11-21 18:26 | 显示全部楼层
请有STM32F4 Discovery开发板的用户,测试一下。
 楼主| xfcjava2 发表于 2012-11-21 19:09 | 显示全部楼层
项目文件,还有如下的功能,你们也可以测试:  
1、修改 FATFS_ALLFUNC_DEBUG_EN 编译开关:
#define  FATFS_ALLFUNC_DEBUG_EN    1   
2、将BSP初始化修改如下:     
(也就是注释掉任务:Task_MP3Play_App)   
void InitBSP(void * pvParameters)   
{        
    (void)pvParameters;               
    SystemInit();               
    BSP_Init();               
   COM6_Init(115200);               
   xTaskCreate(Task_USB_Msc     , "Task_USB_Msc", 1024, NULL, 1, pxTaskUsbMsc);               xTaskCreate(Task_ReadLis302DL, "Task_ReadLis", 128 , NULL, 2, pxTaskReadLis);                xTaskCreate(Task_FatFs_Test  , "FatfsTestTask",1024, NULL, 3, pxTaskFatfsTest);                        //xTaskCreate(Task_MP3Play_App,"MP3Play_AppTask",1024, NULL, 5, pxMP3Play_App);                vTaskDelete(pxInitBSP); //delete itself.   
}
3、然后重新编译,下载代码到目标板,就可以测试U盘的FatFs文件系统的功能了:   
(说明:命令输入通过串口输入,所有命令采用:小写格式)  
di ------------------------------------初始化命令  
fi  ------------------------------------加载FatFs文件系统命令  
fl  ------------------------------------文件列表命令  
fs ------------------------------------文件系统状态命令  
....
 楼主| xfcjava2 发表于 2012-11-21 19:09 | 显示全部楼层
 楼主| xfcjava2 发表于 2012-11-21 19:10 | 显示全部楼层
【 fo <mode> <file> ------- 打开一个文件,:1:只读 ,2:写,4:创建文件 】

例如:fo 1 0:test_mdy.txt  ---------以只读模式打开一个文件【0:是驱动器号】
         fc  ---------------关闭文件

         fo 4 0:myusb.txt     ---------创建一个新文件【0:是驱动器号】
         fc  -----------关闭文件
         fl --------------使用此命令后,就可以看到你新创建的文件了
 楼主| xfcjava2 发表于 2012-11-21 19:26 | 显示全部楼层
还有很多的文件测试功能,在这儿就不一一列举了。
文件重命名,格式化,查看扇区数据,查看文件创建时间,删除文件,......

你们可以测试一下:查看扇区数据的命令:
dd  0   【说明: dd 命令  ;0:扇区号】

也可以直接输入命令: dd
连续运行此命令的话,可以一个扇区接着一个扇区的,查看扇区数据
 楼主| xfcjava2 发表于 2012-11-21 19:36 | 显示全部楼层
ds,dd命令截图:  
    ds,dd命令截图.jpg
 楼主| xfcjava2 发表于 2012-11-21 19:44 | 显示全部楼层
上传的时候,RS232连接好像是搞错了。 非常抱歉!!!

“另外:RS232连接如下:                             应该是:
              PA2-----------> TX                                    PC6------------>TX
              PA3-----------> RX                                    PC7------------->RX

要是没有如此连接的话,你们可能就无法使用串口,测试这些功能了
 楼主| xfcjava2 发表于 2012-11-21 19:45 | 显示全部楼层
你们看看图片中的连接线位置,也能看出来,是上传的时候,搞错了。
dfsa 发表于 2012-11-21 23:10 | 显示全部楼层
很给力的一些资料,多谢共享
无冕之王 发表于 2012-11-21 23:20 | 显示全部楼层
lZ很给力啊,鼓励分享
baidudz 发表于 2012-11-21 23:30 | 显示全部楼层
这个资料对我很有用,多谢LZ
fengye5340 发表于 2012-11-22 10:10 | 显示全部楼层
感谢楼主分享!
jxndcl301 发表于 2012-12-3 11:08 | 显示全部楼层
谢谢楼主的开源精神
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

470

帖子

43

粉丝
快速回复 在线客服 返回列表 返回顶部