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

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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    调试串口0收发数据,用调试助手发12345678,但接受到8个1,大神帮忙看一下!!
    6 l' t, a0 {4 E
    8 ?3 f9 I' T+ V- z$ ?) a#include "LPC8xx.h"
      T. H9 A% _& o9 H( o: t: ^0 ~#include <stdio.h>
    ; v' C7 K/ [' j) R#include <math.h>
    ! u, m* @2 f: X- _8 H#define UART_BPS        9600                                         : p6 f3 D0 O' v8 Q8 J+ J- A
    #define BUFFSIZE        64                                          
    . Q( A5 v7 S5 `' Z# g#define tiME            (3.5*10)/UART_BPS$ l+ @9 h. p$ A3 v
    volatile  uint8_t UART0_GucRcvNew;                                 
    7 o8 c. Q6 g( O: u: z: @uint8_t     UART0_GucRcvBuf[BUFFSIZE];                              9 v- }# e, O( [
    uint8_t     UART0_GucRcvProcess[BUFFSIZE];                           
    ! g" R6 v5 v4 s: o: P5 z4 Muint32_t    Gul0Num;                                                " m8 I7 v& M* l, S# I3 r: F# w
    uint32_t    Sen0Num;                                                . C, U/ Z6 v7 G3 l+ ~; B# a

    1 X; P; i. K' [4 x0 s3 p- ^( C7 {6 F; t* A$ g

    0 X$ w: J4 D* {. rvoid UARTInit (void)4 J8 E6 o8 p. Y* B
    {
    . U$ w8 \+ J  N" a4 p: D    LPC_SWM->PINASSIGN[0] &= ~( 0xFFFF << 0 );
    8 H& W8 w- _3 z; q, Q5 d$ M  D7 f    LPC_SWM->PINASSIGN[0] |=  ( 4 << 0 );                              
    , Z' U1 }/ x# a0 B  `# C) a    LPC_SWM->PINASSIGN[0] |=  ( 0 << 8 );                              
    . L- r* F: `  z- ^   
      l% l3 q9 d/ m: l1 O    LPC_SYSCON->UARTCLKDIV     = 1;                                    
    * o1 p! ~8 f2 I$ y( n5 s) I1 a3 d    LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 14);                             % H( J! Q# V  d" ]( I: j" F
       
      S8 V" P! H; z( _' y) Q. I5 l% H    LPC_USART0->BRG = SystEMCoreclock * LPC_SYSCON->SYSAHBCLKDIV /7 [& {6 o* P" E0 g
                          (LPC_SYSCON->UARTCLKDIV * 16 * UART_BPS) - 1;                " U( M5 ?3 c& F7 C- N
        LPC_USART0->CFG = (1 << 0) |                                       / T* D+ W6 l! L" s  P
                          (1 << 2) |                                        * r+ v! e# ^/ @
                          (0 << 4) |                                       
    0 F; c" A" [5 P/ X0 B. v5 Q                      (0 << 6);                                         
    2 ^$ t% H1 H. s! |    $ j  I8 `* I/ b) h# W
        LPC_USART0->INTENSET = (1 << 0);                                   4 w4 e# [$ R! S) w& E
        NVIC_EnableIRQ(UART0_IRQn);                                       
    6 ^+ z9 U8 \! D  L$ w          NVIC_SetPriority(UART0_IRQn,5);                                    
    5 ?7 _2 H* R6 {! |' \}
    # C% r1 z6 ]% k; F: i
    / M2 J- o3 T& b8 D" P( h- C
    ( ?- ~& l& L: p/ w) s$ |5 H' R$ P
    # W* G+ i! B5 G$ r* r) uvoid UART0_IRQHandler (void)
    & R. O2 a2 L$ \7 y) Q{   
    5 S& y0 m; g  O' V/ u  b# }    LPC_MRT->CHANNEL[0].INTVAL  = SystemCoreClock*TIME;                                    
    / l) |8 Q0 {0 J/ n! E    LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31;                           
    $ M! M' @* x, n! _4 Y) d# r    if (LPC_USART0->STAT & 0x01)                                       5 V5 a1 {& x( K. ^+ Y3 H
        {    / @6 b3 z3 R3 w
            UART0_GucRcvBuf[Gul0Num] = LPC_USART0->RXDATA;                 1 ?: K& J# f- j$ q7 j/ U
                              Gul0Num++;: }1 F. {2 r4 O0 O# }4 V8 ?
                              Sen0Num=Gul0Num;1 I; l. R( g* n  k8 m
                              LPC_MRT->CHANNEL[0].INTVAL  = SystemCoreClock*TIME;              
    7 l2 O) C- B/ z+ a. g                          LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31;                          
    : B4 g, }+ ~5 Q( Z, A  ^
    / O5 m& U8 c$ j; jvoid UART0SendByte (uint8_t ucData)9 }5 K) j2 K. |2 a; H6 w
    {2 [: e4 Q1 C/ ]1 g/ Z
        while ((LPC_USART0->STAT & 0x04) == 0);                             " Z# Y% f' P( v0 q! k* ]
        LPC_USART0->TXDATA = ucData;                                       
    % i7 z, v: Q! s    while ((LPC_USART0->STAT & 0x08) == 0);                           1 y: a! Y' E. p% E! p4 X: a+ M
    }) a8 K' k- I' @( b% H+ k

    0 f+ D! t: F* j* j
      {+ c" e7 U4 S# h0 }  B, j8 `6 ^& {* D* g) B4 P
    void UART0SendString (uint8_t *pucData, uint32_t uiLen)! @9 S$ z6 s8 E4 U$ c
    {
    8 b" p& Y7 o" l' a& C& P         uint32_t i;, b, b! J, t: I! O: c7 ~: c1 Y2 F
             for(i=0;i<uiLen;i++)  a6 |5 h' f0 J0 J6 a
            {
    5 c$ \" A' d6 E; c3 {# U                 UART0SendByte(*pucData);4 N& c1 V+ x6 F% l5 c' o
            }+ q6 [5 \0 @& F1 r$ z
    }
    7 N# H" S7 w. P9 i% Z  ( F2 Z% V* U& T9 o

    # q7 [: m8 Z0 j) L; k. z. L/ _void MRTInit (void): ?4 g) t$ B( r, B
    {( G; j* G* m# \1 |
        LPC_SYSCON->SYSAHBCLKCTRL |=  (1 << 10);                           % Z4 H- Z* ?* X' p7 G
        LPC_SYSCON->PRESETCTRL    &= ~(1 << 7);                             
    2 [/ \7 x7 `: g- `/ x$ Y0 e    LPC_SYSCON->PRESETCTRL    |=  (1 << 7);                             
    ; K: o- S) m9 R, D/ H5 w! H    LPC_MRT->CHANNEL[0].CTRL   = (1 << 0) | (1 << 1);                  
    % _9 W0 k& z, T( L/ ~, M    NVIC_EnableIRQ(MRT_IRQn);                                          1 w; M  n8 J; z  p" Y2 F
              NVIC_SetPriority(UART0_IRQn,4);                                    ( i) P6 H/ H" \$ o$ V) s% q
    }
    8 c" \/ |- @  R+ E4 N/ L9 \' u/ F% I) y2 Y( K& _

    ) R3 D8 Z0 S* Y$ C! ?4 q, {6 q/*********************************************************************************************************
    6 B, M2 d$ w3 J1 r1 v** Function name:       MRT_IRQHandler
      \$ {9 m6 H0 o/ ~+ V1 D! J* @** Descriptions:        MRTÖD¶Ï·tÎñoˉêy
    & L/ B$ ]! k3 |( P** input parameters:    ÎT
    ! Q8 n; Q" P+ M; T( u, c* h  L2 F** output parameters:   ÎT
    % q- \5 k+ b' f; j- X- e** Returned value:      ÎT: x9 W- _2 i% s' G- N
    *********************************************************************************************************/
    ! f- ^5 p) T: C. ?void MRT_IRQHandler (void)
    ( @& v% y8 r6 l1 h{  ; [0 v- b. a! [; b
              uint32_t i;% T* z- i1 i  r1 [4 c( R1 |1 k
        LPC_MRT->CHANNEL[0].STAT = (1 << 0);                           
    0 a* e( f% U$ Y9 n5 b9 V" R' v% f          UART0_GucRcvNew=1;                                                               ' P6 K/ Z+ A/ s/ h
        for(i=0;i<Gul0Num;i++)
    ' N6 I6 _0 V; A2 ?. y9 Q8 c/ l" w( o# h                        {% x! n9 X$ ~$ _4 q5 h
                                    UART0_GucRcvProcess=UART0_GucRcvBuf;( s3 k8 N0 J$ Y0 m6 M/ i' d: \
                            }6 L# P0 o, F% a1 p8 I
        Gul0Num=0;                    * o$ e9 ]* W3 u# I, U/ S$ O
        LPC_MRT->CHANNEL[0].INTVAL  = 0;                                 
      Z* F0 K& ~2 |1 }, S    LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31;                         关闭定时器
    5 f9 m4 t  Y  F; [* R6 l0 F}
    3 _% r$ z+ B  Z* C1 B' H1 W- Y2 L, Q/ M/ Y1 o
    int main (void)
    7 n- D; {1 z5 g6 e3 |; L{
    , x: _; H5 u5 @& h2 ~    SystemInit();                                                       " w+ @8 J7 u- h# R3 D
        UARTInit();                                                        . Z, Y6 d/ G  g5 a7 \- ?& G
        MRTInit();% N1 H, O1 `- V& k! L6 s2 A$ L
    //    GuiNum=0;7 d# u( V" u( u1 e! U4 r; o+ v
    //          GucRcvNew=0;
    2 u. A# g9 q8 q5 C    while (1)' ?. C/ T- U" p0 M% s! F; v& V/ I
                    {+ P3 U& [' G( B- g5 {7 ]# w- M
                            if(UART0_GucRcvNew==1)
    ! G% O7 u, e6 {1 q# @0 M' [# M            {) v0 @+ G1 {, \$ f/ `
                                                 " e! f4 p/ O, c# l3 t6 q; @
                                                             UART0_GucRcvNew=0;) K. L. G. @7 a0 \" u% N7 ?
                                                 UART0SendString (UART0_GucRcvProcess,Sen0Num);                     
    , J/ Z& k+ d- W- L8 _% s                                    }" i" W2 T0 J4 ]: H% o
        }4 P7 y# U$ H7 V$ z3 b6 {
    }: S) e+ F& @( j

    该用户从未签到

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

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

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

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