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

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

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

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

    [LV.1]初来乍到

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

    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

    该用户从未签到

    2#
    发表于 2021-5-8 17:49 | 只看该作者
    哇呜,程序都贴上来了哦……

    该用户从未签到

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

    该用户从未签到

    4#
    发表于 2021-5-8 17:57 | 只看该作者
    检查一下你的系统时钟,感觉是那的问题
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 08:19 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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