查看: 3059|回复: 1

[其他] 关于MC13224的串口编程问题

[复制链接]

该用户从未签到

1

主题

1

帖子

0

新手上路

Rank: 1

积分
5
最后登录
1970-1-1
发表于 2012-3-5 22:51:40 | 显示全部楼层 |阅读模式
请问哪位高人通过直接访问MC13224的UART寄存器,实现串口数据的首发控制?
以下是我的程序代码,我希望通过直接控制UART寄存器,利用中断实现对串口的数据收发。
  UART1_REGS_P->Ucon = 0x00000000;               /* 1 stop bit                */
  UART1_REGS_P->Ubr = 0x0003270F;                  /* 1200 bps                       */
  UART1_REGS_P->Urxcon = 0x00000005;             /* Rx Buffer Level                */ 
  UART1_REGS_P->Utxcon = 0x00000005;             /* Tx Buffer Level                */
  UART1_REGS_P->Ucts = 0x00000000;
  UART1_REGS_P->Ucon |= 0x00006003;              /* Enable Tx and Rx               */
  tmpLong = UART1_REGS_P->Udata;
 
  IntAssignHandler(gUart1Int_c, (IntHandlerFunc_t)Uart1_Isr);   /* UART1 ISR       */
  ITC_SetPriority(gUart1Int_c, gItcNormalPriority_c);
  ITC_EnableInterrupt(gUart1Int_c);              /* Enable UART1 Interrupt         */
  IntEnableIRQ();
 
其中Uart1_Isr是串口中断程序,应该是收到数据后会进入该中断。
可现在的调试结果是:打开Tx和Rx后,无法进入Uart1_Isr中断程序;可是一旦不打开Tx或Rx,状态寄存器的TxRdy或RxRdy就会置位,反而进入中断后就死循环了,除非在中断后打开才能清除。
请问该如何解决?有没有实例呀?
我知道答案 目前已有0人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-3-6 15:30:21 | 显示全部楼层

    RE:关于MC13224的串口编程问题

    中断的使用,要注意各个标志位的处理。要先配置串口,再开启中断。中断接收,是在串口有数据发送过来的时候才会产生的。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-13 00:31 , Processed in 0.117117 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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