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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    调试串口0收发数据,用调试助手发12345678,但接受到8个1,大神帮忙看一下!!3 i7 w5 X; T# ]

    * ?6 v$ e6 o0 [- |2 }/ M" a$ B#include "LPC8xx.h"
    " W# i5 e7 o5 W! h#include <stdio.h>( q* \4 V7 l! q& \; o
    #include <math.h>$ \5 K( Z! p2 |) r6 m, O& [
    #define UART_BPS        9600                                         
    + U# Z# ~$ F8 b& r, n' ?#define BUFFSIZE        64                                          
    ) B! d7 |; j  a- E# z0 ^#define tiME            (3.5*10)/UART_BPS
    # v- v  c" l5 i) b$ J& }( K! Nvolatile  uint8_t UART0_GucRcvNew;                                 2 i1 Y7 {/ a0 f4 B0 J8 `: R# `4 E
    uint8_t     UART0_GucRcvBuf[BUFFSIZE];                              
    0 i$ N( I& [; }' Suint8_t     UART0_GucRcvProcess[BUFFSIZE];                           
    ) c# P1 J- @8 t; v9 N; |; ]/ {uint32_t    Gul0Num;                                                
    8 S7 c6 ^- A6 s" Tuint32_t    Sen0Num;                                                
    3 ]! E% ?1 _) f. G/ V6 y# c( ~: `# c( Q, c2 H4 q* J' y# w6 v4 l

    8 _+ s+ ^3 ]" F( a" P4 X3 Y, k" U4 D3 U- i/ N  a+ d0 o
    void UARTInit (void); T& U8 K' A- Y. h, m5 t
    {
    * s1 H# C# }  E    LPC_SWM->PINASSIGN[0] &= ~( 0xFFFF << 0 );9 `, A9 ~7 j* a
        LPC_SWM->PINASSIGN[0] |=  ( 4 << 0 );                               8 C) S. i5 C7 ]5 h; \
        LPC_SWM->PINASSIGN[0] |=  ( 0 << 8 );                              
    " i- ~! j2 `5 B7 G    ! E& q, `9 T  {
        LPC_SYSCON->UARTCLKDIV     = 1;                                    
    1 Z( h8 |" ?% I$ ~1 w( x4 R0 G8 Q; G    LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 14);                             " ]! u4 K* ~  r* Z& @% o
       
    * b6 i1 ^# j0 }% e; W. H    LPC_USART0->BRG = SystEMCoreclock * LPC_SYSCON->SYSAHBCLKDIV /
    4 e8 G' H1 O3 _! ?: I$ F8 E                      (LPC_SYSCON->UARTCLKDIV * 16 * UART_BPS) - 1;                / Z% l  ^- M: {* F
        LPC_USART0->CFG = (1 << 0) |                                       
    9 @+ F, O; H# o) u; C) z& l                      (1 << 2) |                                        / p* y' V! V  h$ y  x
                          (0 << 4) |                                        , R) S8 Z6 I+ a
                          (0 << 6);                                         
    ; a  k8 G5 w* J% W    0 ^' A3 s8 m8 t3 p/ U1 Y5 q( p
        LPC_USART0->INTENSET = (1 << 0);                                   
    ' `8 V0 f- a! m4 t9 C9 `    NVIC_EnableIRQ(UART0_IRQn);                                       # Z* d  U8 `, ?" n! j0 _
              NVIC_SetPriority(UART0_IRQn,5);                                    
    " A/ }! m# P7 L- t( z+ h: v, a}2 L3 O; B$ Q4 ~/ Q

    - {! z  T8 i2 E, J3 b9 b7 k  m! A4 Y0 ?
    $ Z' T6 n7 x' K* S( _
    ) \# a- w. C: E* x: uvoid UART0_IRQHandler (void)
    / h% R. u" m' u0 t$ I{     |+ e7 d$ L$ P+ n# H
        LPC_MRT->CHANNEL[0].INTVAL  = SystemCoreClock*TIME;                                      a. T$ Q3 a+ ?! d, x
        LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31;                           
    9 |4 G5 A9 x. Q) Z- T; U* O! i- m    if (LPC_USART0->STAT & 0x01)                                       
    ! d4 ]. D& O$ S  K" |1 s    {   
    ( T' E& p/ |2 x3 h        UART0_GucRcvBuf[Gul0Num] = LPC_USART0->RXDATA;                 * i& i- i" b+ }
                              Gul0Num++;5 g. g+ _) q: n8 E
                              Sen0Num=Gul0Num;% e5 t9 k2 g. w4 u/ ]5 y/ e
                              LPC_MRT->CHANNEL[0].INTVAL  = SystemCoreClock*TIME;              
    ; O2 M7 U6 }+ X& p1 j                          LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31;                          
    ! |0 Z8 L4 Q. B6 h: }
      e9 b* J' q1 _% p& Cvoid UART0SendByte (uint8_t ucData), L* X% q& }! d( h
    {3 T; a$ }. Z! P' T( b) v
        while ((LPC_USART0->STAT & 0x04) == 0);                             7 E. b: c- E& C5 l( `" p! w2 ?, T
        LPC_USART0->TXDATA = ucData;                                       
    8 k& G7 t9 y. Q9 L    while ((LPC_USART0->STAT & 0x08) == 0);                           9 A7 {' k6 B1 r+ A4 ~
    }4 r1 o$ }6 m( H$ Z0 j
    9 b' G- }( u  A5 Y1 ]0 P7 k

    / S6 E# n  \0 s% n
    # [& @: _$ D: M1 [# Pvoid UART0SendString (uint8_t *pucData, uint32_t uiLen)/ Q  @- X6 B% Y, u" B0 A$ ~
    {! o5 {) h7 r7 b6 T
             uint32_t i;
    - N3 P4 _% _, ]9 w8 z         for(i=0;i<uiLen;i++)
    7 N" s' ]$ W7 E8 [3 d; s: Y. {% }        {
    3 C6 r3 R8 H, K! N0 d                 UART0SendByte(*pucData);
    - K% k& a( u+ B7 P1 x+ G        }% L% I' n7 s& {
    }
    * E: t6 m3 g6 z  w" O! U  & K% }6 z9 a* {  ~8 w/ R5 V
    # v1 _1 S$ T: D6 a; G, ?
    void MRTInit (void); |8 m9 `+ N1 ~! K( \  f
    {! Y7 T' [$ g" V* b
        LPC_SYSCON->SYSAHBCLKCTRL |=  (1 << 10);                           
    $ S( t# }" T- E1 f; r" ?& X% w8 Y    LPC_SYSCON->PRESETCTRL    &= ~(1 << 7);                             2 _( V  f5 `0 C$ [2 }- b
        LPC_SYSCON->PRESETCTRL    |=  (1 << 7);                             $ q1 L) k0 v) y
        LPC_MRT->CHANNEL[0].CTRL   = (1 << 0) | (1 << 1);                  
    + A0 o' k' _: N. _6 b    NVIC_EnableIRQ(MRT_IRQn);                                          
    9 n. d# f2 x6 Y, p  }  y- S6 Q/ O& A8 Y+ \          NVIC_SetPriority(UART0_IRQn,4);                                    8 ^, J5 x- L. M+ j2 g
    }
    9 N7 }& f2 @; i9 P3 W; F$ J8 J) r; g- \2 @0 R& [$ d
    3 `" W: Z0 H1 i. T2 q" M
    /*********************************************************************************************************
    7 w0 ]3 W5 R* v8 d# G** Function name:       MRT_IRQHandler/ @9 ]/ b  d7 {
    ** Descriptions:        MRTÖD¶Ï·tÎñoˉêy
      p) F6 I" e. ?+ Z5 }** input parameters:    ÎT8 ^8 k- {; f4 H9 v" \0 J. D
    ** output parameters:   ÎT
    3 D& N. |! `: ^9 i- _  j9 O** Returned value:      ÎT2 F+ u% C* t# T. g+ h- V; i
    *********************************************************************************************************/- Q5 `* E! [: W7 ?! q$ q
    void MRT_IRQHandler (void)
    $ R' ]! m7 N/ v% `! n{  
    $ Q5 Y9 b6 K* Y          uint32_t i;
    $ h2 B1 N1 I+ R! S; q* _    LPC_MRT->CHANNEL[0].STAT = (1 << 0);                           
    3 s9 Z/ Z. T1 z2 [          UART0_GucRcvNew=1;                                                               
    6 l5 Q5 c- h3 F    for(i=0;i<Gul0Num;i++)- f) s: v( c- N
                            {0 m8 _4 i* h* @- _
                                    UART0_GucRcvProcess=UART0_GucRcvBuf;
    ; A4 j0 J( x* U4 m" l                        }
    8 x6 C' t# U) j7 o/ \7 \* v    Gul0Num=0;                    / i3 \7 j, [" Q* Q) }
        LPC_MRT->CHANNEL[0].INTVAL  = 0;                                 . s& |7 T& G# Y3 x9 \
        LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31;                         关闭定时器& X. }$ ]) \5 k& L6 H
    }) G5 r+ t4 p; [! \6 |

    * z" A) r/ N& q0 T+ Cint main (void)+ ]7 k; P1 Q0 J; Y" Z2 O. W7 t0 Q+ J
    {( @+ b7 ~4 @# ]: I2 T
        SystemInit();                                                      
    ; W( J( a% M( j" `  Q8 p! u9 T    UARTInit();                                                        0 M$ N/ m6 ]& E4 ~4 d
        MRTInit();$ U7 s5 h8 @% _6 M. d9 A
    //    GuiNum=0;4 J; F6 V( g; r6 @6 Y2 h9 M
    //          GucRcvNew=0;
    : T7 k- n7 C" v4 `    while (1)
    # U# c  r/ l# i& W                {9 l% Y2 ]7 P8 Z; f, ?( i
                            if(UART0_GucRcvNew==1). ?0 j" m/ D9 W7 o- a
                {
    2 F- q$ M6 p9 C- e( e  A2 V                                             / t4 G9 I* I0 z+ k7 h* h4 x! V) z
                                                             UART0_GucRcvNew=0;
    9 r: j% `  a2 J  J4 I3 A8 o% }- ]) [                                             UART0SendString (UART0_GucRcvProcess,Sen0Num);                     * n/ Y# a( Z1 ^6 x0 _# z  ~
                                        }
    , ^( h: W0 Q. A9 x" S9 w    }
    ) T& u7 B: B! t}+ b8 F1 A0 n; f; a9 L- ?

    该用户从未签到

    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:40 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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