|
之前发过一个在codesorcery 环境下编译的万利的demo程序。这一个算是另一个应用了,这次解决了printf无法工作的问题。不过使用printf代码猛增一倍,看来只能做做实验了。 0 t( @8 w! a: Y- {6 b 我用的万利的EK-STM32F评估板,通过杜邦线飞线到另一块板,那就是网站的mp3范例板(我的是之前的缺陷板) STM32F评估板,那些接口都是通过跳线来接的,所以很方便做实验,不过并不是所有的都可以接,要是cpu周围的那些用2。54mm间距的插针就好了。 具体使用的接口在程序中可以看出来,这里列一下: ! f' p1 m4 [. M% C& Y+ ] 按键:就是采用板子上自带的按键(这个按键很不错),那个摇杆,还有就是Key3,(key2被我用作vs1003的dreq了)。 $ U6 y% y" ^; a1 n# L #define MODE GPIO_Pin_4 ' B" M3 T: c( H" E! @% ] #define STOP GPIO_Pin_11 #define NEXT GPIO_Pin_12 5 o( Q8 B7 o" W/ m8 g" p #define UP GPIO_Pin_14 #define DOWN GPIO_Pin_15 #define PREV GPIO_Pin_13 6 X& r& z/ }9 Y #define KEYS_PORT GPIOD /****************************************************************/ - ?1 g9 }, q) c# M6 d" t VS1003: (修改的话,具体看程序,spi端口不需要改) 0 ~1 [9 m% b: C& { #define VS1003B_XCS GPIO_Pin_0 5 I+ A! S3 X7 T, \8 p: r& ]+ n+ Z #define VS1003B_XCS_PORT GPIOE . I7 } m, L" g! H# y #define VS1003B_XDCS GPIO_Pin_2 #define VS1003B_XDCS_PORT GPIOE / E/ c& ^' ]! t) a: G ; v! ^; c" `/ U- ?$ p #define VS1003B_XRESET GPIO_Pin_1 / F. r" W" j' f1 ~0 P6 y #define VS1003B_XRESET_PORT GPIOE V3 [- G7 u9 K0 O7 [4 a/ G #define VS1003B_DREQ GPIO_Pin_3 4 o0 U- w- V2 X+ Q. A* [! ^* D #define VS1003B_DREQ_PORT GPIOD 1 L& d7 l0 a# ] #define VS1003B_SCK GPIO_Pin_5 # C1 m7 u4 T4 F# ^: O #define VS1003B_SCK_PORT GPIOA $ m6 M. j6 z1 k3 w5 _. z# b) ^: j #define VS1003B_MISO GPIO_Pin_6 #define VS1003B_MISO_PORT GPIOA ; s6 P+ y1 Q- E) j) b; w9 o: Z* t) o 3 z) o- K" ]) O/ k #define VS1003B_MOSI GPIO_Pin_7 # I( w' J$ X0 p. d8 Q #define VS1003B_MOSI_PORT GPIOA /***********************************************************/ 3 |& ]1 j; c* J) F SD卡:(修改的话,具体看程序,spi端口不需要改) #define MMC_SD_CS GPIO_Pin_9 . d% q& M9 ?7 o #define MMC_SD_CS_PORT GPIOD " B1 c! Z' ?, z+ u4 l. w #define MMC_SD_SCK GPIO_Pin_5 #define MMC_SD_SCK_PORT GPIOA & C8 D6 m6 j( O* I' r! W ! Z3 e% a. z9 v+ T #define MMC_SD_MISO GPIO_Pin_6 8 ~9 ^- P' v: }" R" B# Y #define MMC_SD_MISO_PORT GPIOA #define MMC_SD_MOSI GPIO_Pin_7 & P, O/ k! N% {6 W" I/ V #define MMC_SD_MOSI_PORT GPIOA - p, s# f0 s9 I* v- ` c) i* b 8 X- z1 ^0 ^# f3 P1 r /*********************************************************/ 3 [2 f: T X; U9 }0 c 3310LCD:(修改的话,具体看程序,如果不用spi,可以任意改) $ x4 D; @+ |2 {2 M- J /* 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 p! n8 {( H' j( S& ^% ~# @ #define LCD_RST GPIO_Pin_5 #define LCD_RST_PORT GPIOE #define LCD_SCK GPIO_Pin_5 & k' K9 ^; S6 V# @9 p, D #define LCD_SCK_PORT GPIOA % u, r5 @3 m* n6 V : C- U5 c! }, ?+ |$ A" C; m: {$ Z #define LCD_MISO GPIO_Pin_6 #define LCD_MISO_PORT GPIOA , l2 _" d4 _% E: r/ ` #define LCD_MOSI GPIO_Pin_7 # N% I( N) j7 D4 p #define LCD_MOSI_PORT GPIOA ' O4 V0 t! I4 d4 b, N! S1 e% p 7 }" A7 V% S$ {( z% y $ }' @! O1 `; h7 t. m" Q /****************************************************/ 8 ?% n5 s! D0 H! |6 B 附件是程序:(我是用sourceinsight),编译器用的是CodeSourcery 免费的GNU compiler * E: M- W; s4 I7 b- q: m$ s$ [ 调试中碰到的问题: 1、stack的问题,在startup_gcc.c里改,一开始出现的问题是,用isp后自动运行没问题,按复位就挂了。 2、使用malloc, free, printf 等函数需要的系统调用函数,和ld文件的修改。(附带程序已经修改好了,可以参考以下(不保证完全正确)) |
ç¨åº.zip
下载373.26 KB, 下载次数: 216
微信公众号
手机版
RE:发布一个带完整歌词显示的mp3
RE:发布一个带完整歌词显示的mp3
RE:发布一个带完整歌词显示的mp3
RE:发布一个带完整歌词显示的mp3
回复:发布一个带完整歌词显示的mp3
之前发过一个在codesorcery 环境下编译的万利的demo程序。这一个算是另一个应用了,这次解决了printf无法工作的问题。不过使用printf代码猛增一倍,看来只能做做实验了。
4 |/ A( ^; V4 M: Y
我用的万利的EK-STM32F评估板,通过杜邦线飞线到另一块板,那就是网站的mp3范例板(我的是之前的缺陷板)
STM32F评估板,那些接口都是通过跳线来接的,所以很方便做实验,不过并不是所有的都可以接,要是cpu周围的那些用2。54mm间距的插针就好了。 0 h- X' {) R+ {" \- u \
具体使用的接口在程序中可以看出来,这里列一下: 2 r8 d) u$ l3 H/ l
按键:就是采用板子上自带的按键(这个按键很不错),那个摇杆,还有就是Key3,(key2被我用作vs1003的dreq了)。
#define MODE GPIO_Pin_4
#define STOP GPIO_Pin_11 - l; y4 D6 E" }; D+ Q# G h
#define NEXT GPIO_Pin_12
#define UP GPIO_Pin_14
#define DOWN GPIO_Pin_15
#define PREV GPIO_Pin_13 6 c4 Z" ]( H! V z1 } U, v8 B2 x
8 `- d! @; \/ ~1 M' b) d. `
#define KEYS_PORT GPIOD 4 @& J9 f; y e7 Q
. \- B& g& p% x3 ` D8 e
/****************************************************************/ $ c' `7 z4 T% j- B
VS1003: (修改的话,具体看程序,spi端口不需要改) ! q5 x! C% i1 L- }, u6 l9 U; [
% X, w% @% j) E& [
#define VS1003B_XCS GPIO_Pin_0 ( S4 Q& \3 R' c+ t3 t' m- n
#define VS1003B_XCS_PORT GPIOE : ?0 Q; l5 t' g6 v( v, A
#define VS1003B_XDCS GPIO_Pin_2
#define VS1003B_XDCS_PORT GPIOE " T- X8 L+ b: x* Y0 M
#define VS1003B_XRESET GPIO_Pin_1 - R! D9 C( r7 ?% l4 N2 T
#define VS1003B_XRESET_PORT GPIOE 5 n4 m4 k7 p9 y7 |0 J/ H
#define VS1003B_DREQ GPIO_Pin_3
#define VS1003B_DREQ_PORT GPIOD ( ^& Z9 A* Y5 P. F
#define VS1003B_SCK GPIO_Pin_5
#define VS1003B_SCK_PORT GPIOA
#define VS1003B_MISO GPIO_Pin_6
#define VS1003B_MISO_PORT GPIOA 6 z4 z a3 B6 `! J6 i) _/ y; l
% j* g/ f- I; L4 S! l# @2 Q. @
#define VS1003B_MOSI GPIO_Pin_7
#define VS1003B_MOSI_PORT GPIOA 9 n" D, r# q& w) s, W( H# m ~& k
/***********************************************************/ 3 u& n& ]3 e+ p& b0 r
SD卡:(修改的话,具体看程序,spi端口不需要改)
#define MMC_SD_CS GPIO_Pin_9
#define MMC_SD_CS_PORT GPIOD 8 l3 u8 Q# g, n- [% h
#define MMC_SD_SCK GPIO_Pin_5 6 V8 \2 z9 a- G& j {5 Y# G3 R3 }
#define MMC_SD_SCK_PORT GPIOA
% r/ ]0 ?/ a, Q! E; Y
#define MMC_SD_MISO GPIO_Pin_6 ! t) O7 E8 i9 u* N# A) U- P
#define MMC_SD_MISO_PORT GPIOA
#define MMC_SD_MOSI GPIO_Pin_7 # S" e. F% g% d. i7 j
#define MMC_SD_MOSI_PORT GPIOA 6 g. b2 }: _1 \% [
; P' x9 P5 g: Z' J% `
/*********************************************************/
3310LCD:(修改的话,具体看程序,如果不用spi,可以任意改)
/* pins of the signal */
#define LCD_RS GPIO_Pin_3 + q( H' D$ G5 K+ V
#define LCD_RS_PORT GPIOE
; t( l9 B. Y( i, {" x
#define LCD_E GPIO_Pin_4
#define LCD_E_PORT GPIOE ; ]" }0 K' }( g3 T
1 c6 J7 F6 |; m: w! V
#define LCD_RST GPIO_Pin_5 , q" W& s. c8 _; s6 ?0 ? h+ [
#define LCD_RST_PORT GPIOE 5 t& ~8 j; [( w
& \2 M+ g7 ~/ b' b) d3 a
#define LCD_SCK GPIO_Pin_5 . r/ F( L' s0 k5 h( a( }% t
#define LCD_SCK_PORT GPIOA , M- k y7 B' [& J1 t9 i
#define LCD_MISO GPIO_Pin_6
#define LCD_MISO_PORT GPIOA
#define LCD_MOSI GPIO_Pin_7 / ^) N8 s4 _8 E$ n6 L% F3 M
#define LCD_MOSI_PORT GPIOA
7 X Y: ?: u P! C# l) E
2 E# R) @6 X! O3 _
/****************************************************/ ! N% v; X$ T' m5 X- A3 |
附件是程序:(我是用sourceinsight),编译器用的是CodeSourcery 免费的GNU compiler
调试中碰到的问题: % E: W3 w6 o* U3 t8 k
1、stack的问题,在startup_gcc.c里改,一开始出现的问题是,用isp后自动运行没问题,按复位就挂了。 0 n2 \' v/ v, v4 Z6 x' H
2、使用malloc, free, printf 等函数需要的系统调用函数,和ld文件的修改。(附带程序已经修改好了,可以参考以下(不保证完全正确))
( w. o0 {6 A& _5 `8 v- h' G
好东西,我来挺了啊
RE:发布一个带完整歌词显示的mp3
2、使用malloc, free, printf 等函数需要的系统调用函数,和ld文件的修改。(附带程序已经修改好了,可以参考以下(不保证完全正确))
RE:发布一个带完整歌词显示的mp3
RE:发布一个带完整歌词显示的mp3