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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    调试串口0收发数据,用调试助手发12345678,但接受到8个1,大神帮忙看一下!!
    9 {4 f/ P/ P8 ^. n- i
      ~, u! b6 A6 x1 P1 p9 \, a5 H#include "LPC8xx.h"
    % p! A, C" N* Y( e8 s. I; Z#include <stdio.h>+ m- E1 |% |. V0 I# U1 P4 G2 d  ~
    #include <math.h>8 d4 F1 C/ Q# L( h
    #define UART_BPS        9600                                         
    , z+ g' B# P, U4 S; g3 C/ C#define BUFFSIZE        64                                          
    6 @8 A9 T' k5 z5 u, ?# S; @#define tiME            (3.5*10)/UART_BPS. O1 }4 I; I- I' L% Z7 r: g5 W: \( M
    volatile  uint8_t UART0_GucRcvNew;                                 
    : Y. v7 |/ |+ S# z, M7 o( puint8_t     UART0_GucRcvBuf[BUFFSIZE];                              3 ?7 x- @, e; ^% U; B
    uint8_t     UART0_GucRcvProcess[BUFFSIZE];                           
    + M  @, o3 ~% c" R7 euint32_t    Gul0Num;                                                
    ) h$ T- c; u6 Xuint32_t    Sen0Num;                                                6 B2 W9 a" ~6 X/ _' Q; ^5 |
    0 r4 ?- w2 d  b1 u7 z
    % d$ T4 f$ f  f% z. u' y/ m, ]& O- {( l0 m

    2 ]: @4 F+ [( u& @  P7 Y8 avoid UARTInit (void)
    ) l8 x6 P, z+ P{
    2 W8 P1 M+ l4 F5 _; w3 a2 e    LPC_SWM->PINASSIGN[0] &= ~( 0xFFFF << 0 );
    % P" P& h* d) H9 D! d6 U    LPC_SWM->PINASSIGN[0] |=  ( 4 << 0 );                              
    9 D" X! M! g! X: c: Z" t5 }    LPC_SWM->PINASSIGN[0] |=  ( 0 << 8 );                              9 E  Z9 X( H) D6 D
       
    & M) {/ h( X" B% w) u' o    LPC_SYSCON->UARTCLKDIV     = 1;                                     . y" U! Q0 q0 I+ b3 T
        LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 14);                             
    6 ]( f5 h6 S! g9 x( a4 S0 v7 b   
    , U) f6 d- ]- d. N    LPC_USART0->BRG = SystEMCoreclock * LPC_SYSCON->SYSAHBCLKDIV /  R, o% A  J* V/ j  [
                          (LPC_SYSCON->UARTCLKDIV * 16 * UART_BPS) - 1;                % Z: _, _$ d5 C, o5 f1 W
        LPC_USART0->CFG = (1 << 0) |                                       2 D- v& n( C0 G
                          (1 << 2) |                                        ! `, F3 B% ^% U9 I* E# S" |  x1 V
                          (0 << 4) |                                       
    3 Y- {! t) u/ w5 [6 M                      (0 << 6);                                           I& o" K% @; v* w: k
        " a. D6 O; R0 Y
        LPC_USART0->INTENSET = (1 << 0);                                   ! L2 ~0 q- `* w* x6 r$ E9 y+ u. s
        NVIC_EnableIRQ(UART0_IRQn);                                       7 }, _& J2 P0 f: s6 d! u
              NVIC_SetPriority(UART0_IRQn,5);                                    2 d- z- @! E2 `2 O; Y4 U2 Y
    }
    ; c' }9 I% q: n0 c+ h8 Z1 U0 I; R1 `2 P' F: {) x/ Y

    0 Q3 x5 Q' U& u% g6 S+ j- Y1 J3 g# O* B% N6 A
    void UART0_IRQHandler (void)
    ; G9 F& {6 Z9 L6 _( b; T{   , {6 `$ A$ T; y  t5 Z
        LPC_MRT->CHANNEL[0].INTVAL  = SystemCoreClock*TIME;                                    
    ' W5 e# ?) a4 {5 P( E    LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31;                              a7 J) ~, K' I, V& p7 }3 |
        if (LPC_USART0->STAT & 0x01)                                       
    . ^- ]. s7 o+ Q. p2 K2 N9 d2 p    {   
    % }( Y9 t. T9 v, }        UART0_GucRcvBuf[Gul0Num] = LPC_USART0->RXDATA;                 
    , o2 h# g& M) R                          Gul0Num++;; v- Y6 F4 ~8 X- i. [
                              Sen0Num=Gul0Num;
    5 c7 O0 U- ~$ t( b                          LPC_MRT->CHANNEL[0].INTVAL  = SystemCoreClock*TIME;              . T4 F5 X8 n0 l5 e
                              LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31;                          5 H7 w  a% X: l# Y
    # ~- f, i$ D9 M2 \$ X' ^4 ~% r
    void UART0SendByte (uint8_t ucData)0 v- [, Q2 t# g0 Q
    {, R2 Z' W* {% {
        while ((LPC_USART0->STAT & 0x04) == 0);                             4 H2 m. l+ Q, j& a
        LPC_USART0->TXDATA = ucData;                                       
    . j6 J8 p2 [! R# i# q  V; E    while ((LPC_USART0->STAT & 0x08) == 0);                           9 D# m, K, f3 ]0 [
    }  t5 b9 W/ Z% M+ [: f
    & z) _9 F( y  R4 Z* I+ r
    5 @. ]: E6 ]2 y* K0 a' f; L

    * G' C2 v+ e8 k# }' Z+ F4 Bvoid UART0SendString (uint8_t *pucData, uint32_t uiLen)8 k% R0 @" n# X) V% M+ M
    {
    ! R, T# i; @8 c7 @         uint32_t i;4 D. H8 d' z7 w2 r9 V# X  l
             for(i=0;i<uiLen;i++)4 l( O% q0 B. f1 @0 C- Z
            {! t& N; D2 Y4 E9 H5 S6 i
                     UART0SendByte(*pucData);
    $ T9 I" y! W# j8 j2 @        }5 @: [! g. i/ M5 \  G5 T+ f. [5 ~% G2 w
    }
    - z: {6 v( G* _5 e. a  $ C$ [, e. @1 t- }/ J

    % R2 V6 E1 N; s0 g$ D2 K) hvoid MRTInit (void)& z1 O% ?/ H& L6 ?% q
    {5 C" G, _4 e  C5 t
        LPC_SYSCON->SYSAHBCLKCTRL |=  (1 << 10);                           
    ) Z/ ]2 M+ o) f- |. P6 p    LPC_SYSCON->PRESETCTRL    &= ~(1 << 7);                             
    + b* N9 w8 j+ Z! F) Z, n7 h    LPC_SYSCON->PRESETCTRL    |=  (1 << 7);                             4 V1 j5 e) N# q4 r& s, Q
        LPC_MRT->CHANNEL[0].CTRL   = (1 << 0) | (1 << 1);                  
    3 w) L6 M  U. S# O5 Z5 H+ ]# t5 M    NVIC_EnableIRQ(MRT_IRQn);                                            s% I! ~3 u: R  S
              NVIC_SetPriority(UART0_IRQn,4);                                    
    7 Z6 j* Y+ f; Z9 z6 e% p( ?}3 H" S. i+ `! f$ Q
    # @2 k- ~: b* n3 _0 Q/ `: f6 |

    : N, M2 E9 u0 r* s: [( e/*********************************************************************************************************2 J: Q+ Z) A; J; ?& s6 Z; E6 ?4 b
    ** Function name:       MRT_IRQHandler
    0 e6 S+ l! _8 |7 [6 Z" g** Descriptions:        MRTÖD¶Ï·tÎñoˉêy4 e6 _  f# _, G7 g
    ** input parameters:    ÎT
    - k' u8 c$ A6 m* n** output parameters:   ÎT
    / l3 J7 |/ T' W! o% T7 F; z** Returned value:      ÎT
      q/ h. x4 ^2 \7 N  a4 u' c*********************************************************************************************************/' N: S/ g* ]7 H: k6 U/ P: B6 t
    void MRT_IRQHandler (void)3 F- @+ K. k- B! ]" Q/ M7 ^, `  _
    {  2 Q& G1 w& d1 R( u8 H
              uint32_t i;
    $ `1 F" D+ v% [4 O    LPC_MRT->CHANNEL[0].STAT = (1 << 0);                           
      N0 r' U" k4 g5 x* J4 M, N          UART0_GucRcvNew=1;                                                               8 l. L7 y. g( ^% ^; k
        for(i=0;i<Gul0Num;i++)
    / i& P9 D/ D! l6 w( l- q$ Y                        {; E( h$ E9 |0 m$ d; M* }8 k' L
                                    UART0_GucRcvProcess=UART0_GucRcvBuf;
    & D: V1 ~2 j6 W  l. H                        }
    : N8 g8 L" J7 W" z    Gul0Num=0;                    
    " ?+ ^! B9 r7 \! V( t" P    LPC_MRT->CHANNEL[0].INTVAL  = 0;                                 ; z- N2 L& u- k8 h* d
        LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31;                         关闭定时器
    " c9 j! }) J) U7 b! F2 {1 S}" ^! l8 W9 E1 ~  X

    1 X3 [2 t: H. w) u' e- Z% lint main (void)- `* a; @5 A# _2 o' I* j
    {
    * z0 p/ i2 b5 y# l- q+ `7 G7 L. ]" ?    SystemInit();                                                       8 S. l5 r" U. r# x7 \
        UARTInit();                                                        
    ' c$ @6 I- [% R    MRTInit();
    8 ]% _" v$ s  y5 R* H9 Q( y  L//    GuiNum=0;
      z$ c: K' k# Y8 t. n1 T//          GucRcvNew=0;( K( N8 k3 q, A2 d
        while (1)
    / n+ L; c6 N$ l6 b* t9 L0 I                {
      }; f. D2 c; v" i+ y                        if(UART0_GucRcvNew==1)2 V$ b3 V1 ^; @/ X* ], P  x
                {8 o6 k8 q2 P( v" S- v
                                                 
    : q4 F( y$ d9 w+ c/ k9 [0 w                                                         UART0_GucRcvNew=0;
    ' i6 o* ]' S9 [* y+ o                                             UART0SendString (UART0_GucRcvProcess,Sen0Num);                     , k3 L! S4 p+ X* b( V: |! Y2 O
                                        }' f1 n8 \, k/ }' ?6 G
        }8 H. R  a, m. s" V; w7 X
    }% T4 r' Y" j6 B- {8 o! G6 X

    该用户从未签到

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

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

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

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