TA的每日心情 | 怒 2019-11-19 15:34 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
调试串口0收发数据,用调试助手发12345678,但接受到8个1,大神帮忙看一下!!& ~2 Y, M7 p" [9 W* ^% E \, e
2 {2 w0 S0 ?8 t#include "LPC8xx.h"
9 k9 _ b, x3 q3 S6 x#include <stdio.h>* t% y/ R) J+ y. N
#include <math.h>
* h, k: h* v, w; G8 R# k+ d) B#define UART_BPS 9600
' j+ q7 a, L/ A8 q#define BUFFSIZE 64 8 ^: u# R$ Q2 w8 t$ M
#define tiME (3.5*10)/UART_BPS
7 [7 f% D; [5 Q8 C' uvolatile uint8_t UART0_GucRcvNew; & T/ B$ L9 I. | ~* P- X
uint8_t UART0_GucRcvBuf[BUFFSIZE];
8 w! _) J, Q3 g+ ^, Ruint8_t UART0_GucRcvProcess[BUFFSIZE];
2 d' P$ F1 d9 yuint32_t Gul0Num; 9 S/ Y7 V4 I: ?% E
uint32_t Sen0Num;
' T5 Z5 u2 K# G' h% R- x0 u# F4 h, J) @) z4 J
$ V0 w; ?: C- T3 Z3 {& n
" {" T4 O! e4 ]6 f, m, F% U- p6 avoid UARTInit (void)
" F* J/ {! d1 J+ A D{
2 ~$ @1 \! k4 I8 C0 g LPC_SWM->PINASSIGN[0] &= ~( 0xFFFF << 0 );
) m( b$ o. \4 ?$ Q% Z1 i( \ LPC_SWM->PINASSIGN[0] |= ( 4 << 0 );
8 [) i7 U' [! W e" K9 L. G. o LPC_SWM->PINASSIGN[0] |= ( 0 << 8 );
" m) t3 E( M: m* O* U
) l' t( K! y! ?# M4 ]0 s: ]8 M LPC_SYSCON->UARTCLKDIV = 1;
" g; d9 l9 ]" A8 q6 N LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 14); 6 U* w( g& b0 V: [6 T( [6 k6 Y
2 Y7 {, l$ }5 Q m/ c8 H' r LPC_USART0->BRG = SystEMCoreclock * LPC_SYSCON->SYSAHBCLKDIV /4 \3 j4 h0 g' `: V @
(LPC_SYSCON->UARTCLKDIV * 16 * UART_BPS) - 1;
6 D# B7 |3 i5 p" X g* V LPC_USART0->CFG = (1 << 0) | + c* W& y% t0 C! f
(1 << 2) |
2 y" E* _2 E |9 C& u/ u. [+ H2 E( d (0 << 4) |
* a. z% w8 I2 `. v (0 << 6); ' H4 }" l& H2 Q% T/ r1 `
5 m- k2 y n: N
LPC_USART0->INTENSET = (1 << 0);
3 Z! j' U# ^6 u: k# |! W% r NVIC_EnableIRQ(UART0_IRQn);
7 w/ I4 Y5 n) p2 b$ E5 S0 o NVIC_SetPriority(UART0_IRQn,5); 7 e i9 S0 f. m6 d! m O$ h0 l
}& s C& }8 l8 ]4 Z5 Z& z
, x$ f* ^2 k6 `9 V, |& j4 l2 k/ F
0 p. v& E7 A* ~
- z& T, m+ ^9 s* c& ]void UART0_IRQHandler (void): @# D: J6 q& w
{ 1 t6 Y) u/ M1 D" [& F/ q' o
LPC_MRT->CHANNEL[0].INTVAL = SystemCoreClock*TIME; * t0 T* K3 d0 s
LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31; & [7 g& L' z( L( n0 Y
if (LPC_USART0->STAT & 0x01)
) x1 y' |) M; {" k$ w' F/ u# W. { { 2 x u \ F' ]) R: D
UART0_GucRcvBuf[Gul0Num] = LPC_USART0->RXDATA;
- A6 d& R0 q( b Gul0Num++;+ }0 l' x$ p$ N5 M# m
Sen0Num=Gul0Num;& Q) X! _, f J' a3 y, F6 n
LPC_MRT->CHANNEL[0].INTVAL = SystemCoreClock*TIME; & @6 f% t. b4 x
LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31; 7 R2 }# Q+ v1 Y; r: C- x
% [: V! `! Z! p( J
void UART0SendByte (uint8_t ucData)
3 g j Z# j2 F3 E/ O{
3 v6 N6 w4 z, Z+ F7 w while ((LPC_USART0->STAT & 0x04) == 0); - [' n+ L# _5 _
LPC_USART0->TXDATA = ucData;
( d9 y3 s! q" f5 ~ while ((LPC_USART0->STAT & 0x08) == 0);
' t# e* {# v5 {+ {% K- \}
# ^8 E2 i3 K$ D8 T/ ^3 Q& |9 x; b
3 }+ E; L5 W! b. d2 o8 H
4 o( @' v7 f4 f! ]- q6 `void UART0SendString (uint8_t *pucData, uint32_t uiLen)
, o `/ R! y- Q, G2 y- Q{0 e& w! S* b+ V
uint32_t i;$ n$ V5 o- T2 R, X
for(i=0;i<uiLen;i++)
" ]# }$ W/ l3 }7 }6 A9 S7 v( _' V {7 m# ~% e" D0 h
UART0SendByte(*pucData);: s( a) Y1 W! }$ N5 m" A- R
}
$ `$ ^7 Z" M: `1 g}
# X: }% j h6 c
1 S( o! M2 P; t& F
2 r& J$ q1 Z# Ovoid MRTInit (void)5 j+ m4 _; U2 c$ L% @3 s1 }% B" h3 {7 b
{/ ~. s6 Q3 n' u1 U
LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 10);
* M' ^9 k4 K( {7 P LPC_SYSCON->PRESETCTRL &= ~(1 << 7);
v9 Y0 k# W& i8 s% F( {% R7 z LPC_SYSCON->PRESETCTRL |= (1 << 7);
8 o0 \" u9 l. ^ LPC_MRT->CHANNEL[0].CTRL = (1 << 0) | (1 << 1);
& \, w. q) `. ^: G NVIC_EnableIRQ(MRT_IRQn);
# O' Z4 H0 R8 ?& a NVIC_SetPriority(UART0_IRQn,4); . I+ H# z+ _7 e# ^: G4 b
}
. t. |2 ], B7 O; [/ z" X& t! A, i0 C- F9 }
{* K z' w+ h1 S4 P# O% T/*********************************************************************************************************
P) h. M8 o% F6 Y9 @/ E, F** Function name: MRT_IRQHandler
7 h; G, r. e3 z# x; ]5 A** Descriptions: MRTÖD¶Ï·tÎñoˉêy; e! H9 J. |$ h* Y/ z/ ? o8 P
** input parameters: ÎT2 c8 H! f6 y% i. H) o
** output parameters: ÎT
5 q" R8 }7 {( k3 _. K** Returned value: ÎT
1 Q) Y4 H7 [+ i: b& E; W*********************************************************************************************************/3 u& Z9 P$ Y" J( R1 z3 h* }- u5 G
void MRT_IRQHandler (void)0 e# t7 z' u2 {3 l# p0 `
{ - i' V% n' _: ^
uint32_t i;, G6 r7 v9 x, y4 Z* O1 r( \
LPC_MRT->CHANNEL[0].STAT = (1 << 0); 9 p4 q: W- k3 @# e8 g
UART0_GucRcvNew=1;
- U( r4 |- f' w! v P for(i=0;i<Gul0Num;i++)
+ Q; {! i( ^5 g. H. R" X {
, R6 @) m* d- {# a3 w& W UART0_GucRcvProcess=UART0_GucRcvBuf;
4 r% d: Z8 W' Q$ y, f. w0 O }3 d. W- d3 X4 l7 z5 b% i' ]% L
Gul0Num=0;
* F/ m8 H9 v6 w7 o' ~. r( u LPC_MRT->CHANNEL[0].INTVAL = 0; % m4 \) Q: z% W* N
LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31; 关闭定时器6 [9 Q/ E0 ~* Z/ _+ O, z
}
' V d+ B# p9 j. s/ g- `
; Y# L7 P$ |" N6 \. d0 t3 n$ ]int main (void)' P! E% V/ Z* s9 _. W) Y
{1 T3 r" ^ {5 j. D9 }; {
SystemInit(); ; U2 ?3 s* c1 h
UARTInit(); 8 X6 v2 |3 E2 t- e1 ~
MRTInit();
0 [/ {3 U9 J* _// GuiNum=0;' D7 Y$ u9 n0 L' }% f8 k
// GucRcvNew=0;
% X5 R, z% f6 K! R! n while (1)( T: g8 J' ]9 b1 n$ ]
{
/ A) l3 {% X4 H8 v- U9 v, K if(UART0_GucRcvNew==1)
7 i* [' y( C8 e+ }+ Q5 Y {
( x; {: ^# C- z/ v: h
! f4 }' F, {* @ UART0_GucRcvNew=0;
1 o8 Q! ?# O2 Y6 o/ S UART0SendString (UART0_GucRcvProcess,Sen0Num); 1 ?, o- \, [/ w* s2 a) j j0 z
}
4 M) S3 e4 S( n/ {4 p }
; H* d. @8 F( X" j, ^) _}
; o/ l% V$ f: i) A( ^: z: f. F6 N |
|