找回密码
 注册
关于网站域名变更的通知
查看: 509|回复: 3
打印 上一主题 下一主题

LPC824的串口收发数据异常,请大神帮忙……

[复制链接]
  • TA的每日心情

    2019-11-19 15:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2021-5-8 16:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    调试串口0收发数据,用调试助手发12345678,但接受到8个1,大神帮忙看一下!!
    6 V, E4 W0 V4 [# o6 k) z+ Z& P
      h. M1 Q4 m: C8 H7 s! f8 I) U( V! C#include "LPC8xx.h") b& A: R% f- E
    #include <stdio.h>; T. u7 h/ C3 C4 _
    #include <math.h>/ m9 v/ e8 ~9 E' H, e  ]
    #define UART_BPS        9600                                         
    $ K. N4 c. g% p- q+ G: j+ l0 I#define BUFFSIZE        64                                           7 o3 L" P) O7 B: M. s
    #define tiME            (3.5*10)/UART_BPS
    5 C$ ?, J7 M" |/ C  t. y7 F- \+ ovolatile  uint8_t UART0_GucRcvNew;                                 
    ; L# G* e2 ^( I; r8 ouint8_t     UART0_GucRcvBuf[BUFFSIZE];                              0 F/ K5 B& `! M3 P
    uint8_t     UART0_GucRcvProcess[BUFFSIZE];                           / s8 D9 J1 W: _( h
    uint32_t    Gul0Num;                                                
    2 Y' ?: m$ p/ j: z* a; ?" w' Ruint32_t    Sen0Num;                                                  f9 w! A8 O# Q/ Y" o) O

    % U  H/ D5 t- {7 _
    8 |) }5 d1 E1 t7 G# h+ S+ o  o1 m( o! d1 ?$ h( z
    void UARTInit (void)( Y/ F) [" _$ s6 _( N9 T
    {
    / Q' o3 m& T! I) _: h4 r) V7 V( i    LPC_SWM->PINASSIGN[0] &= ~( 0xFFFF << 0 );
    * g$ e7 a& P( m( C7 i    LPC_SWM->PINASSIGN[0] |=  ( 4 << 0 );                              
    % e7 ^# \+ [4 \! p) S: Q# G- c* U    LPC_SWM->PINASSIGN[0] |=  ( 0 << 8 );                              7 e: g# _$ r5 R+ ^% {  p
        9 u: E% J/ Q1 Q+ x* N9 r6 I1 S
        LPC_SYSCON->UARTCLKDIV     = 1;                                     8 L( W: c; b& r( D6 f0 V" i
        LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 14);                               B7 _) A( y) ^) @
        0 o6 c0 r+ n6 d+ C1 N
        LPC_USART0->BRG = SystEMCoreclock * LPC_SYSCON->SYSAHBCLKDIV /5 ~6 f0 @+ I3 O8 W1 e
                          (LPC_SYSCON->UARTCLKDIV * 16 * UART_BPS) - 1;               
    1 k: ]% _- x" Q+ a    LPC_USART0->CFG = (1 << 0) |                                       
    1 \: F2 d+ `# O% F3 z, E                      (1 << 2) |                                       
    & H# w: f3 \2 U0 m                      (0 << 4) |                                       
    ! q/ s4 g5 v. J                      (0 << 6);                                         
    ( [0 E9 i8 }6 L/ ?" p. w; k- F   
    ' }+ P. G3 H, T+ {    LPC_USART0->INTENSET = (1 << 0);                                   ( a. j! U; ^/ ]4 H) T6 ?0 k% F
        NVIC_EnableIRQ(UART0_IRQn);                                       
    & l+ t$ t& ~  X* S& m' A          NVIC_SetPriority(UART0_IRQn,5);                                    7 Y8 V* U. \% r
    }9 d* }) O: s3 [0 q/ o. Q% L+ C1 z

    9 g/ S& V5 O# E5 T- p* a3 H# H7 T- o8 G# X
    ( M* k4 g- L# C1 T. }
    void UART0_IRQHandler (void)) o0 M, ?8 @. m  y
    {   
    9 w, m, E) a. w% E$ }0 i    LPC_MRT->CHANNEL[0].INTVAL  = SystemCoreClock*TIME;                                    
    % L! n' l' S' V+ V    LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31;                            + }* ]6 L) }- G4 z, o) w
        if (LPC_USART0->STAT & 0x01)                                       0 I7 Z/ l0 a# G9 ]8 |6 I3 f+ ]. k
        {   
    & @" w7 V# u3 G        UART0_GucRcvBuf[Gul0Num] = LPC_USART0->RXDATA;                 
    6 d9 n$ a: {1 I) S: a$ r: B                          Gul0Num++;
    : D+ e5 O( p5 K* D                          Sen0Num=Gul0Num;
    / A" K7 v9 A1 g! f' C                          LPC_MRT->CHANNEL[0].INTVAL  = SystemCoreClock*TIME;              
    " R+ G. }7 R  H* f                          LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31;                          
    + l0 r% y9 w0 z: o; ?' T* w! J
    4 P' u: Y! r% Z' J. l* l, Qvoid UART0SendByte (uint8_t ucData)
    ) }+ Z1 s; r* o' m% m8 E{3 k6 F3 c/ M. h) R, U
        while ((LPC_USART0->STAT & 0x04) == 0);                             
    9 Y7 ?7 [0 X0 U: q/ s( T) c    LPC_USART0->TXDATA = ucData;                                       
    6 _0 e! h5 y2 J' V    while ((LPC_USART0->STAT & 0x08) == 0);                           
    0 u2 d5 ?4 {1 s8 K}( U+ @5 I  s: Q- y8 E2 k3 J- o
    ( k! g) X, Q6 H' o

    5 F& A! B8 t5 A- z3 E5 q" H, m: ?! J0 f: F' ^  e6 x$ f
    void UART0SendString (uint8_t *pucData, uint32_t uiLen)
    : n5 r( \. P; K) q$ I{
    4 y1 |" I" K3 ?$ ~+ v         uint32_t i;( F$ Z& F7 i# M  ?+ E% k
             for(i=0;i<uiLen;i++)
    - g) E2 T7 L# n( F% [' @- T% r' F- z        {# H+ M' a+ q! r3 r, l
                     UART0SendByte(*pucData);* Q0 y# H$ B& V% J' t8 d
            }
    ' j, l* w4 {" r' X) k2 A4 e}
    0 }: h$ b2 b* a7 q9 `  
    0 z3 i5 l# {0 W: `4 l7 ?) p. ~
    * p2 Z: o8 |/ {void MRTInit (void)
    5 c2 R" p9 D5 E& B) W, J{
    - |4 ^# y& ~) w. y6 W  m    LPC_SYSCON->SYSAHBCLKCTRL |=  (1 << 10);                           % e$ J( j* l5 a" f
        LPC_SYSCON->PRESETCTRL    &= ~(1 << 7);                             7 W# _2 f5 l  v6 ]( t
        LPC_SYSCON->PRESETCTRL    |=  (1 << 7);                             ! T6 a# y* Q# i) x9 Z- D  A
        LPC_MRT->CHANNEL[0].CTRL   = (1 << 0) | (1 << 1);                   ; A. ~# @' f6 v6 a  g0 o7 B
        NVIC_EnableIRQ(MRT_IRQn);                                          
    8 z3 M& O! r; H( }2 \; I          NVIC_SetPriority(UART0_IRQn,4);                                    
    ) s; Y$ D2 |1 c$ Y3 z}
    * A" [5 |5 X& N9 S9 L' u# `, \9 F) K  j# F: c3 }0 R9 C# _/ |

    4 o. B8 ]3 `, z. |3 |6 B/*********************************************************************************************************0 p! [4 d1 x, [  T$ \  P
    ** Function name:       MRT_IRQHandler
    ) x" e* z; e) e* |0 d** Descriptions:        MRTÖD¶Ï·tÎñoˉêy
    ) V3 k4 C7 k0 v8 h** input parameters:    ÎT
    ' r7 w* _0 J2 Y& P) ~** output parameters:   ÎT
      f8 x% n* P! G** Returned value:      ÎT$ }& k8 C  b4 L) @6 P! @
    *********************************************************************************************************/; I" n& T6 D& v( ], \8 [7 @9 o
    void MRT_IRQHandler (void)
    , J5 J3 s( L1 y3 a7 l; X: d{  ( |/ P8 b+ a3 z6 n5 N( Y0 f8 {
              uint32_t i;
    / t; J( J$ m# O# f, ~6 ^    LPC_MRT->CHANNEL[0].STAT = (1 << 0);                           
    1 n- @3 P3 a& a8 B) m  Q          UART0_GucRcvNew=1;                                                               7 Z- o- m7 U  k; y( y* h5 L" ?
        for(i=0;i<Gul0Num;i++)
    % h( V3 w1 W$ U+ D; n+ }                        {
    4 z( u, V" {0 i: g; e! s                                UART0_GucRcvProcess=UART0_GucRcvBuf;$ y- ^8 y% Q: s9 W" o
                            }8 c0 A, Q7 A% |- K3 h' v8 z3 c
        Gul0Num=0;                    * x- w4 k$ C4 w: s* {) @
        LPC_MRT->CHANNEL[0].INTVAL  = 0;                                 2 a9 L1 o) f) ]
        LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31;                         关闭定时器
    " T- t( x, t1 \* n7 n}
    / n3 P2 S8 y! s7 K& z# \
    4 i- f- t5 u" k8 K( h2 xint main (void), X: P1 h' ?3 {: ]0 a: h
    {) I: V; h$ {$ v5 H
        SystemInit();                                                         ]* @6 X3 A8 a" U5 W" j- l# t4 Z
        UARTInit();                                                        
    & l4 Y  C8 n& j8 ?' g/ G6 N    MRTInit();
    + e, C- e4 }3 T7 @8 J//    GuiNum=0;
    - B9 p9 ], M& O+ b1 K6 A//          GucRcvNew=0;
    ) p9 p8 |" |% J$ p- B& b" H    while (1)
    ; t, g8 h7 D  O, E; g; a                {
    + U: I7 l/ t  _0 o7 C2 G7 [6 X: J4 y                        if(UART0_GucRcvNew==1)
    / u9 d( k) ?& t  ]3 ~0 w! z; q3 W            {
    9 L/ B; e% Z( M/ s                                             3 m$ J6 M; V+ A: e! a
                                                             UART0_GucRcvNew=0;
    4 i4 R' h- q- Y, h8 m% O% ?$ W                                             UART0SendString (UART0_GucRcvProcess,Sen0Num);                     
    4 x9 u: C6 ^- x- [. {% L( V                                    }9 ^( Q3 u9 S1 ]) N0 ^. e
        }
    * ]; H% q/ ~% [3 z' t}
    5 J, s( z. [  V8 C' b; |6 @# A

    该用户从未签到

    4#
    发表于 2021-5-8 17:57 | 只看该作者
    检查一下你的系统时钟,感觉是那的问题

    该用户从未签到

    3#
    发表于 2021-5-8 17:50 | 只看该作者
    发的是0,收到的是8?感觉好像缺个啥东西

    该用户从未签到

    2#
    发表于 2021-5-8 17:49 | 只看该作者
    哇呜,程序都贴上来了哦……
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 11:00 , Processed in 0.156250 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表