|
之前发过一个在codesorcery 环境下编译的万利的demo程序。这一个算是另一个应用了,这次解决了printf无法工作的问题。不过使用printf代码猛增一倍,看来只能做做实验了。 P+ N; Y) `9 a- ] 我用的万利的EK-STM32F评估板,通过杜邦线飞线到另一块板,那就是网站的mp3范例板(我的是之前的缺陷板) 8 _( \* L5 j& ?% \% U STM32F评估板,那些接口都是通过跳线来接的,所以很方便做实验,不过并不是所有的都可以接,要是cpu周围的那些用2。54mm间距的插针就好了。 ) c0 ~3 v) [8 R# S& v+ c6 a, P 具体使用的接口在程序中可以看出来,这里列一下: + ^/ u$ R, W3 |+ { 按键:就是采用板子上自带的按键(这个按键很不错),那个摇杆,还有就是Key3,(key2被我用作vs1003的dreq了)。 ) u V, h4 F6 [+ C; ?& q #define MODE GPIO_Pin_4 ' Q& `, e' b& I #define STOP GPIO_Pin_11 - l$ Y$ j0 N: T5 z* n8 O, O7 \ #define NEXT GPIO_Pin_12 ~0 N3 }1 o( f3 Z& f #define UP GPIO_Pin_14 #define DOWN GPIO_Pin_15 ) A6 G7 Z2 a: z1 e' ] #define PREV GPIO_Pin_13 : h" i0 Q$ x `8 Y5 K( M " @: [. ~' W" p" Y; B! A #define KEYS_PORT GPIOD /****************************************************************/ VS1003: (修改的话,具体看程序,spi端口不需要改) #define VS1003B_XCS GPIO_Pin_0 2 A* D' p/ a3 e" T! O* V6 R #define VS1003B_XCS_PORT GPIOE 6 `* Z. b. V; e9 k7 a : s0 [3 a! Q: c& N #define VS1003B_XDCS GPIO_Pin_2 #define VS1003B_XDCS_PORT GPIOE ; g* {+ x: H ^ #define VS1003B_XRESET GPIO_Pin_1 : l4 ~. O( b4 Q9 | #define VS1003B_XRESET_PORT GPIOE # ~, Q6 ]5 K- a \! {: I2 H #define VS1003B_DREQ GPIO_Pin_3 #define VS1003B_DREQ_PORT GPIOD 3 `" W1 ~+ d; {3 ? #define VS1003B_SCK GPIO_Pin_5 #define VS1003B_SCK_PORT GPIOA 3 t- l, j: z, U5 \/ V: W5 B! ^ 7 L7 Q- L, O# |) d3 R _4 l #define VS1003B_MISO GPIO_Pin_6 + K% |* J, r1 e: @# P+ m7 d9 \ #define VS1003B_MISO_PORT GPIOA - o' l- e8 |9 @ #define VS1003B_MOSI GPIO_Pin_7 d2 Z8 I8 u$ ] F; X6 l8 x$ P% b #define VS1003B_MOSI_PORT GPIOA & b4 z. t% n- z* N8 \ /***********************************************************/ SD卡:(修改的话,具体看程序,spi端口不需要改) # g8 Y g5 g) ]/ i* U' T/ O% x5 z ' `4 ^) j$ p8 h# ~/ Q+ X #define MMC_SD_CS GPIO_Pin_9 % j$ o# a; @' Y1 ? #define MMC_SD_CS_PORT GPIOD 9 D; J4 U0 D3 p9 Y ; w& P7 P7 P2 L4 |( y #define MMC_SD_SCK GPIO_Pin_5 3 c q' A, g7 b: e5 |$ V! U #define MMC_SD_SCK_PORT GPIOA 6 X5 ?- K" P O6 v7 f! y: K0 A #define MMC_SD_MISO GPIO_Pin_6 % S$ U5 M/ H; M) [0 v3 { #define MMC_SD_MISO_PORT GPIOA 4 W* @$ ]; q- C #define MMC_SD_MOSI GPIO_Pin_7 #define MMC_SD_MOSI_PORT GPIOA " d) d) b( Y# ]& J( Y& z: R" g /*********************************************************/ ( Y2 y8 c8 @* X# n: c 3310LCD:(修改的话,具体看程序,如果不用spi,可以任意改) 6 v5 o! L) F3 E; O$ W: { /* 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 . g T" G$ z4 F- I, J' H #define LCD_RST GPIO_Pin_5 #define LCD_RST_PORT GPIOE #define LCD_SCK GPIO_Pin_5 9 A& U/ j# P5 | #define LCD_SCK_PORT GPIOA $ o, J# M& @& p q #define LCD_MISO GPIO_Pin_6 ' I" d1 G: r: f2 ]+ w #define LCD_MISO_PORT GPIOA 3 b& u3 x% C6 T' x# y1 j #define LCD_MOSI GPIO_Pin_7 ) n: a" w3 C3 q: V3 V& @. G #define LCD_MOSI_PORT GPIOA 5 l5 k B8 I6 v. S- {( p /****************************************************/ 附件是程序:(我是用sourceinsight),编译器用的是CodeSourcery 免费的GNU compiler 5 k9 D) X4 {1 m+ U 调试中碰到的问题: 9 G. _8 l% y! Z/ G, q 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代码猛增一倍,看来只能做做实验了。 # R2 U9 i( H1 Z- e6 t
我用的万利的EK-STM32F评估板,通过杜邦线飞线到另一块板,那就是网站的mp3范例板(我的是之前的缺陷板) # V! V0 v: h& N) [. ?1 t- R
STM32F评估板,那些接口都是通过跳线来接的,所以很方便做实验,不过并不是所有的都可以接,要是cpu周围的那些用2。54mm间距的插针就好了。 8 B) Z+ q8 j& {* h7 u% J, S" d3 i( B
具体使用的接口在程序中可以看出来,这里列一下: & w2 m+ y" z% ?! [
2 w- A, G, x, v$ K6 n) c
按键:就是采用板子上自带的按键(这个按键很不错),那个摇杆,还有就是Key3,(key2被我用作vs1003的dreq了)。
9 b& @ M1 q$ ]0 G
#define MODE GPIO_Pin_4
#define STOP GPIO_Pin_11 3 f9 N! y; P ~7 O
#define NEXT GPIO_Pin_12 6 v7 c. v9 Y1 w" ~
#define UP GPIO_Pin_14 ; s2 m# F( v- S; @$ N3 ^9 s
#define DOWN GPIO_Pin_15
#define PREV GPIO_Pin_13
#define KEYS_PORT GPIOD 5 N* D- u4 R# x5 X( P6 o0 F! [$ H
/****************************************************************/ 4 z1 ]" {* E% ?* N9 G/ T0 t! O. i
VS1003: (修改的话,具体看程序,spi端口不需要改)
- l+ { K; r3 D6 v5 d
#define VS1003B_XCS GPIO_Pin_0
#define VS1003B_XCS_PORT GPIOE ' ]0 _/ j2 F) [+ p4 c9 [8 S
2 U8 V0 N& V; n! Z7 v% b. K
#define VS1003B_XDCS GPIO_Pin_2
#define VS1003B_XDCS_PORT GPIOE
8 m8 J2 n1 |% R, G+ g
#define VS1003B_XRESET GPIO_Pin_1
#define VS1003B_XRESET_PORT GPIOE 2 Q' K) m5 v5 g5 ?5 M
#define VS1003B_DREQ GPIO_Pin_3 * D# {7 ~6 P) ]/ V; |# j$ w
#define VS1003B_DREQ_PORT GPIOD 8 O% I5 \- L2 `9 D$ C" M
#define VS1003B_SCK GPIO_Pin_5
#define VS1003B_SCK_PORT GPIOA
) k, A+ N1 |9 y- r3 G9 O) n, k
#define VS1003B_MISO GPIO_Pin_6
#define VS1003B_MISO_PORT GPIOA
#define VS1003B_MOSI GPIO_Pin_7 ' ~% H: |+ B3 d8 A) ?
#define VS1003B_MOSI_PORT GPIOA : d- d5 e# h1 A3 N# e6 o/ W5 G( ^1 ]- d
/***********************************************************/ % I" }3 R. Q. U% |/ w: e& j4 O" Q; c
SD卡:(修改的话,具体看程序,spi端口不需要改) ! @0 h- B q% }4 {9 x) M! c
#define MMC_SD_CS GPIO_Pin_9 & O" E0 T$ {, z! Z5 F$ p* K
#define MMC_SD_CS_PORT GPIOD
2 h3 b' ^, W! b0 t2 d( j
#define MMC_SD_SCK GPIO_Pin_5
#define MMC_SD_SCK_PORT GPIOA
: ?, A0 ~3 Z6 p6 L
#define MMC_SD_MISO GPIO_Pin_6 7 C( x g; i% n& d- l
#define MMC_SD_MISO_PORT GPIOA + Q7 U6 e" o2 M- M! c
4 i) B) h- w# `) r. D
#define MMC_SD_MOSI GPIO_Pin_7
#define MMC_SD_MOSI_PORT GPIOA : ?+ ]/ i' W; S' {
/*********************************************************/
3310LCD:(修改的话,具体看程序,如果不用spi,可以任意改)
/* pins of the signal */ # v( y6 o' ?2 T4 C. g( i! Z
#define LCD_RS GPIO_Pin_3 ; B. L- @% S& ?
#define LCD_RS_PORT GPIOE , X* ]2 C7 ]( r. j5 {& G
R7 c+ `- L# C1 I5 H# F
#define LCD_E GPIO_Pin_4 & V* y& H4 r* y1 v8 W: [
#define LCD_E_PORT GPIOE
" m; V; ~% U, Y3 E
#define LCD_RST GPIO_Pin_5 5 T3 H6 ~/ c0 H. Q' A- E( \
#define LCD_RST_PORT GPIOE
#define LCD_SCK GPIO_Pin_5
#define LCD_SCK_PORT GPIOA
#define LCD_MISO GPIO_Pin_6 $ N/ B, z+ [: U7 D0 m/ c
#define LCD_MISO_PORT GPIOA
& V' n& e( W) _0 O% M; V9 a
#define LCD_MOSI GPIO_Pin_7 7 G3 ~" `( R- p- G
#define LCD_MOSI_PORT GPIOA * m2 K* d) [2 y1 w
( @2 q% }4 M7 B& c$ z
/****************************************************/ * Z5 E2 \- E( V! x6 g
附件是程序:(我是用sourceinsight),编译器用的是CodeSourcery 免费的GNU compiler
2 C" Z7 u3 L( T; }
调试中碰到的问题:
1、stack的问题,在startup_gcc.c里改,一开始出现的问题是,用isp后自动运行没问题,按复位就挂了。
2、使用malloc, free, printf 等函数需要的系统调用函数,和ld文件的修改。(附带程序已经修改好了,可以参考以下(不保证完全正确))
好东西,我来挺了啊
RE:发布一个带完整歌词显示的mp3
2、使用malloc, free, printf 等函数需要的系统调用函数,和ld文件的修改。(附带程序已经修改好了,可以参考以下(不保证完全正确))
RE:发布一个带完整歌词显示的mp3
RE:发布一个带完整歌词显示的mp3