|
带完整歌词mp3 player的STM32F10x移植
[复制链接]
哈哈,又移植mp3了。大家别嫌烦,实在没啥东西玩了,没材料,于是就拿这个来练手了。
之前发过一个在codesorcery 环境下编译的万利的demo程序。这一个算是另一个应用了,这次解决了printf无法工作的问题。不过使用printf代码猛增一倍,看来只能做做实验了。
我用的万利的EK-STM32F评估板,通过杜邦线飞线到另一块板,那就是网站的mp3范例板(我的是之前的缺陷板)
STM32F评估板,那些接口都是通过跳线来接的,所以很方便做实验,不过并不是所有的都可以接,要是cpu周围的那些用2。54mm间距的插针就好了。
具体使用的接口在程序中可以看出来,这里列一下:
按键:就是采用板子上自带的按键(这个按键很不错),那个摇杆,还有就是Key3,(key2被我用作vs1003的dreq了)。
#define MODE GPIO_Pin_4
#define STOP GPIO_Pin_11
#define NEXT GPIO_Pin_12
#define UP GPIO_Pin_14
#define DOWN GPIO_Pin_15
#define PREV GPIO_Pin_13
#define KEYS_PORT GPIOD
/****************************************************************/
VS1003: (修改的话,具体看程序,spi端口不需要改)
#define VS1003B_XCS GPIO_Pin_0
#define VS1003B_XCS_PORT GPIOE
#define VS1003B_XDCS GPIO_Pin_2
#define VS1003B_XDCS_PORT GPIOE
#define VS1003B_XRESET GPIO_Pin_1
#define VS1003B_XRESET_PORT GPIOE
#define VS1003B_DREQ GPIO_Pin_3
#define VS1003B_DREQ_PORT GPIOD
#define VS1003B_SCK GPIO_Pin_5
#define VS1003B_SCK_PORT GPIOA
#define VS1003B_MISO GPIO_Pin_6
#define VS1003B_MISO_PORT GPIOA
#define VS1003B_MOSI GPIO_Pin_7
#define VS1003B_MOSI_PORT GPIOA
/***********************************************************/
SD卡:(修改的话,具体看程序,spi端口不需要改)
#define MMC_SD_CS GPIO_Pin_9
#define MMC_SD_CS_PORT GPIOD
#define MMC_SD_SCK GPIO_Pin_5
#define MMC_SD_SCK_PORT GPIOA
#define MMC_SD_MISO GPIO_Pin_6
#define MMC_SD_MISO_PORT GPIOA
#define MMC_SD_MOSI GPIO_Pin_7
#define MMC_SD_MOSI_PORT GPIOA
/*********************************************************/
3310LCD:(修改的话,具体看程序,如果不用spi,可以任意改)
/* pins of the signal */
#define LCD_RS GPIO_Pin_3
#define LCD_RS_PORT GPIOE
#define LCD_E GPIO_Pin_4
#define LCD_E_PORT GPIOE
#define LCD_RST GPIO_Pin_5
#define LCD_RST_PORT GPIOE
#define LCD_SCK GPIO_Pin_5
#define LCD_SCK_PORT GPIOA
#define LCD_MISO GPIO_Pin_6
#define LCD_MISO_PORT GPIOA
#define LCD_MOSI GPIO_Pin_7
#define LCD_MOSI_PORT GPIOA
/****************************************************/
下面是程序:(我是用sourceinsight),编译器用的是CodeSourcery 免费的GNU compiler
调试中碰到的问题:
1、stack的问题,在startup_gcc.c里改,一开始出现的问题是,用isp后自动运行没问题,按复位就挂了。
2、使用malloc, free, printf 等函数需要的系统调用函数,和ld文件的修改。(附带程序已经修改好了,可以参考以下(不保证完全正确))
电路图可以参考EK-STM32F的手册 和 本站mp3的电路图 (上次发过)
一些图片:(有钱一定去买个相机!)
|
|