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

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

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

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

    [LV.1]初来乍到

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

    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

    该用户从未签到

    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-6-23 04:31 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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