|
本帖最後由 popotyer 於 2012-1-17 03:34 PM 編輯 & x1 s) ]9 C! J3 d# b0 O9 E
4 w1 p: r. ~0 Z/ ?
我是用VB把資料傳送到ARM7
( R) e% j" q' p: C在從ARM7傳回來
- b% q& y' {! _( s如果只是自PIN的話2 M- i) G/ t+ }$ X
我傳什麼就接收到什麼!!6 \- H; Q0 y \4 D1 ?! W
(如:傳ASDFG 接收:ASDFG)
! K6 i6 ?: V1 m但接到ARM7時
$ D7 z- d( ^8 J! ]6 N* J接收部分就會變亂碼/ L( H% n. R) Y" ?3 v5 L, v
(圖在最下面)+ y$ E# O* O1 U! S& e0 ?. m% Z
所使用的是UART的部分(RS232)* ~3 w0 v; p$ ]+ J I( l! H
資料是可以傳送接收
/ U9 }- E, `, v) m+ V. ^問題是傳回來的資料是亂碼~!!
, k& W; U O0 O( J3 U請問我該如何寫他?7 a- F4 p* | \& z8 H+ o
已下是傳送接收部分- void main(void)
2 C; f& g. e* f3 m - {- R: f% N; j) D8 ^3 f8 a
- char k;
& g* E( @) j/ O2 n1 z/ y- \ K7 u - char buf[4];" a+ }; t" l7 `5 D
- char parity=5;. z+ C. [( s# `) G4 j' R+ s
- //uint32 status;
$ n! ]1 b1 l6 u3 l" v - UARTMODE_t um;1 [; D" t; W! ^3 w# s. K/ x" ?
-
1 F( J& Q. ]; S+ O; E: C! ] - 6 A, e! U* e# r9 q5 L
- (*AT91C_PIOA_OER) = LED_MASK|BUZZER|DP_PUP; // could be neglected(???)
; `9 D# Z9 D" w: L - BUZZER_OFF();$ L# }! n9 t/ H5 A% ^/ }
- USB_CONN_OFF();
2 O1 `8 r1 e- [ -
( |+ R \4 G1 Q - um.datab = 8; // 資料長度8位元
% H" Y- n5 P) }5 t# q - um.parity = 4; // 無奇偶校驗
d* C1 V" I' c: e% ~8 F: N - um.stopb = 1; // 1位停止位3 h9 ^1 d% X8 T- G8 p' T
- UART0_Init(BR_4800,um); // 初始化UART0
- U& C. u8 x: D3 c3 N! Q T - U E: c3 b' i+ h
- while(1) 7 q+ B W5 F* c& k8 h9 l9 o# Q
- { : ?* H' M% x8 D" W7 `
- parity=0;
! H8 [) s- D9 q2 c$ K# q7 q5 Q3 ^ - for(k=0;k<4;k++){ : m. E/ H# q) N8 V9 h. {8 C! S
- while(((*AT91C_US0_CSR) & 1)==0); // wait until RxRdy( l6 k+ T; i7 B0 K% f4 T) P
- buf[k]=(*AT91C_US0_RHR); // 接收資料
' ~4 y' J0 D3 X0 { x - parity=parity+buf[k];
; A; g8 P7 u% b: k - }
0 P5 b# V6 U, E" d B - /* if(parity>255){6 S$ ?1 ^! y* H
- parity=parity-256;
: u4 p/ V. M' y D! M3 C: ^# w - }*/
3 H7 x- g! M' G6 @! Z! F - while(((*AT91C_US0_CSR) & 1<<1)==0);
5 T- y" `$ h# K0 n8 e7 l - (*AT91C_US0_THR)= parity; // 傳送資料" r w7 m0 [3 n% T9 o& `
- //Delay(1000); // could be neglected.
; v0 P# }1 Q7 m* y0 q: s0 U - }
* n* F) e" x$ k8 m; L - }
2 q9 T3 r" L# {3 P" z1 Z4 f2 j
複製代碼 |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|