TA的每日心情 | 怒 2019-11-19 15:34 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
调试串口0收发数据,用调试助手发12345678,但接受到8个1,大神帮忙看一下!! l1 Y* J- n) O1 ~
6 M! Z) X; k: I/ @0 Z5 D. B8 D' L, E5 }#include "LPC8xx.h"
/ A0 \# H( x$ [% [& H( ~#include <stdio.h>
1 Z" `, y) K' \/ y+ t$ Y#include <math.h>
0 `2 ~7 q9 ^- a#define UART_BPS 9600 3 C1 ^- T3 \: p/ e5 y4 d
#define BUFFSIZE 64
1 D V# ^9 l1 q5 g6 ]1 M$ M#define tiME (3.5*10)/UART_BPS
; O8 H% W- K; J7 m+ Rvolatile uint8_t UART0_GucRcvNew; 8 q. ~; b; E3 D! n. p5 f6 T3 v
uint8_t UART0_GucRcvBuf[BUFFSIZE]; , R. U+ n. @# p8 t3 }1 `
uint8_t UART0_GucRcvProcess[BUFFSIZE]; ) w; q0 a$ p, R# k; L
uint32_t Gul0Num;
+ g* o0 v+ L; l3 ]; t* k& Xuint32_t Sen0Num;
" [# o+ \: K! m0 e( }. l( |8 T& u% y# G4 e4 X
4 e6 r* A% Z% l# q$ d
$ k# G U* b/ E% W+ W) tvoid UARTInit (void)7 e: f% Q( l# c$ U
{# l8 M$ F9 q, N) e6 _: S
LPC_SWM->PINASSIGN[0] &= ~( 0xFFFF << 0 );4 \0 U7 [" \7 X+ C
LPC_SWM->PINASSIGN[0] |= ( 4 << 0 ); ( |% F! f) o! g& ]: \: z
LPC_SWM->PINASSIGN[0] |= ( 0 << 8 );
/ J$ I+ y- J2 N% ^6 T3 E m4 m6 R. k( h3 p, J |1 |( `" P
LPC_SYSCON->UARTCLKDIV = 1; ' ~, ~& L, o4 R
LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 14); . f4 l+ n6 \, t
4 V7 t8 Y* @" S; \. l LPC_USART0->BRG = SystEMCoreclock * LPC_SYSCON->SYSAHBCLKDIV /. Y) @$ E" [4 R# l( C. F0 f
(LPC_SYSCON->UARTCLKDIV * 16 * UART_BPS) - 1;
# Z Y1 n) H# D9 g' T LPC_USART0->CFG = (1 << 0) | " |, ^1 S) P8 X/ r- Z# f
(1 << 2) |
0 }5 U e' a* b. S- V1 w. v( W5 a# }; s (0 << 4) | $ _! g+ q2 ^1 @+ `) ~
(0 << 6); 7 B% Q( X( L5 I7 ]" d; U& u/ V2 |+ o
+ n7 c, R3 B0 c LPC_USART0->INTENSET = (1 << 0); ) s! F0 V7 @1 ?0 B) A6 q
NVIC_EnableIRQ(UART0_IRQn); " O/ @1 P U/ z0 _4 s
NVIC_SetPriority(UART0_IRQn,5);
& T3 {4 G! }) r d p5 b& _0 v}
; h- }( `+ o8 q9 ~! h2 u: n! W k5 _
9 H. C! L8 P# w; ]$ T( s# g( d8 E) o2 D [
- e" y7 \6 Q8 vvoid UART0_IRQHandler (void)" T5 Q5 N) l+ ~' d1 H6 E
{ $ L# H: n7 ~2 Y# P0 R; }
LPC_MRT->CHANNEL[0].INTVAL = SystemCoreClock*TIME;
' Z/ P6 V, V$ t$ @ LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31;
$ d. A G& H$ z" p. }2 m5 J8 S if (LPC_USART0->STAT & 0x01)
2 G7 y# u( k5 |6 e D$ x {
. @. b, m# v% m2 y+ D UART0_GucRcvBuf[Gul0Num] = LPC_USART0->RXDATA;
: k# e. S3 {4 W Gul0Num++;
: s d0 `8 Z$ @6 V; a* u& \ Sen0Num=Gul0Num;9 V7 G# t% ?5 _) u$ @3 X5 T
LPC_MRT->CHANNEL[0].INTVAL = SystemCoreClock*TIME;
" _, q5 f0 {2 j3 J% X, o' [- c LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31;
$ ~6 v- R6 O4 S3 m+ ]( ]1 f" k/ X" p+ ]* O0 e3 Z
void UART0SendByte (uint8_t ucData)
) X" ?: _2 h2 A{
2 E0 d7 z3 p9 t C3 L while ((LPC_USART0->STAT & 0x04) == 0);
- ^( j$ e" q7 ` P4 A; q4 a LPC_USART0->TXDATA = ucData;
0 P- V5 K/ K- o! J- w while ((LPC_USART0->STAT & 0x08) == 0); : m. ?8 R% Z( [* a
}4 Z* k K8 f$ o( m* i
, l- O; `. _" U
: P$ z. Z. p9 M6 p9 n, h3 I( i+ N' a; Q2 n/ L6 @+ [0 o
void UART0SendString (uint8_t *pucData, uint32_t uiLen)$ C0 c' o) D; X4 H$ }
{( e6 D5 y) ]" m' h% w4 W
uint32_t i;
4 D) v; K9 ^1 @" e! }) r$ \ for(i=0;i<uiLen;i++)2 j1 ]# ]2 Y0 f* F6 v8 u
{2 i6 r2 f |, h: x% G7 \- Z
UART0SendByte(*pucData);0 ]$ Q8 o x' ^7 @4 u
}
$ h; O* g) Q$ v }2 l/ t# I}
9 ]! t$ A* V+ i2 U0 i 6 ]+ N( s% T6 e" ?/ r( U
; F, G' r. G( i, A. K; ~
void MRTInit (void)
2 ^4 W7 w `& l+ u9 V) n{
2 `) M* N/ X8 r+ I# b LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 10);
- `6 r, i" Y9 `9 y LPC_SYSCON->PRESETCTRL &= ~(1 << 7); , s2 v9 \8 T0 k2 o O8 J
LPC_SYSCON->PRESETCTRL |= (1 << 7);
+ G O- b D5 \7 S) @# p LPC_MRT->CHANNEL[0].CTRL = (1 << 0) | (1 << 1); 5 P( E2 p8 Y6 u$ r% t2 D) T* n! H7 p
NVIC_EnableIRQ(MRT_IRQn); 3 s( X3 Y. C& T- R% \1 Q* z
NVIC_SetPriority(UART0_IRQn,4); / o# t6 l: i4 y* c3 K% |7 _
}! o7 U; d6 {0 L! ]0 [
# k2 n* h+ p/ }- }
' h7 s9 [* ?+ j5 Z0 b4 B8 Z: }/*********************************************************************************************************. F) ~* \; {4 `) c
** Function name: MRT_IRQHandler
$ W5 p8 c: U0 ]! d* M! s** Descriptions: MRTÖD¶Ï·tÎñoˉêy& l2 y/ j, O, V4 t
** input parameters: ÎT) [6 i' W- N8 e3 ~; G, Z- a% I
** output parameters: ÎT
6 n2 f" S4 i& C6 g** Returned value: ÎT
5 ~3 u4 `* I$ Y$ X {*********************************************************************************************************/
" L' i V, V' T* b/ {% vvoid MRT_IRQHandler (void)
) _% Q" @! h( Q1 h" h{ 4 i4 X4 x* T+ L
uint32_t i;- N6 T2 q+ b7 j9 \8 k
LPC_MRT->CHANNEL[0].STAT = (1 << 0); 1 l; \. D3 U3 w% {6 h
UART0_GucRcvNew=1;
Q6 u) A0 K r3 ^9 t for(i=0;i<Gul0Num;i++)
b& |+ A y6 V/ i& q2 A {
* l: j- {; ]3 J% i9 c UART0_GucRcvProcess=UART0_GucRcvBuf;
; q% _( c$ y! |/ w }
/ T i0 ?% _9 [2 @! @7 t7 B Gul0Num=0; ; V C/ c& K1 T+ R! E
LPC_MRT->CHANNEL[0].INTVAL = 0; $ S" L* \; d$ j' U9 Y' ?9 w
LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31; 关闭定时器7 f, }% y6 i2 d
}1 E# [+ [; S( I. m
u6 ]; b1 q8 I) e% k1 n9 r
int main (void)+ O# e% E5 k/ T5 b- d
{
) W2 L$ R7 T; s% }: D SystemInit(); + ]. M( L" |, n2 X6 W) m, w5 R
UARTInit(); 3 i7 m# P2 W7 w1 x$ ^
MRTInit();" ^4 ^) _$ |( V5 z [ }
// GuiNum=0;
' [) n$ l+ i3 h4 M// GucRcvNew=0;
4 a6 L' M7 @! K3 f. {' \ while (1)* @2 I7 F, Z) q5 |1 J% t2 H7 o
{6 f- w& O: F- T& O- ?
if(UART0_GucRcvNew==1): B5 g& S+ R% K* _) I: c
{/ t9 p( L5 t, r' [; t: t
+ B; D9 O3 K# R9 C6 _* s
UART0_GucRcvNew=0;
9 ?- ^% O) ]3 J: s* a, K UART0SendString (UART0_GucRcvProcess,Sen0Num); 8 n3 f( D1 L$ l$ y. Y% C
}
c* n3 _ J9 _% g1 Z }- u7 h4 {5 f0 J% O7 o
}4 _! f& ?' {6 I! g6 ~5 b9 y
|
|