打印
[技术问答]

关于MINI58的UART1数据乱码问题?

[复制链接]
2307|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
蓝创电子|  楼主 | 2016-1-13 08:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在使用的是MINI58LDE,在使用UART1的中断接受数据时候,中断函数读到的一直是乱码?

下面是我对UART1的初始化定义,和UART1的中断函数,请大家和版主给我看一下,究竟怎么回事呢?
void Uart1Init(UINT32 unBaud) //115200
{
    SYS_UnlockReg();
   /* Set P2 multi-function pins for UART RXD, TXD */
    SYS->P2_MFP |= (SYS_MFP_P24_UART1_RXD | SYS_MFP_P25_UART1_TXD);


   CLK_EnableModuleClock(UART1_MODULE);
   
   UART1->FIFO  =  UART_FIFO_RFITL_1BYTE;//uart1 没有FIFO,只能是接受一个byte产生中断
   UART1->LINE  = (UART_PARITY_NONE|UART_WORD_LEN_8|UART_STOP_BIT_1);//8位数据位,1位停止位

    UART_ENABLE_INT(UART1, UART_INTEN_RDAIEN_Msk);//接收数据中断使能
  
    NVIC_EnableIRQ(UART1_IRQn);

   UART_Open(UART1, unBaud);
   SYS_LockReg();

}

void UART1_IRQHandler(void)
{
    uint8_t InChar=0xFF;
    uint32_t u32IntSts= UART1->INTSTS;

    if(u32IntSts & UART_INTSTS_RDAINT_Msk)
             {
        /* Get all the input characters */
  while(UART_IS_RX_READY(UART1))  
  {
   while(((UART1->FIFOSTS) & UART_FIFOSTS_RXEMPTY_Msk)!=0);//等待有数据,为空等待
            /* Get the character from UART Buffer */
            InChar =  UART_READ(UART1);  
            printf("%c", InChar); //此处打印出的与送入中断的数据不一样

        }
   
      }


}
沙发
mwang| | 2016-1-13 13:41 | 只看该作者
看样子你是从
.\Mini58\SampleCode\StdDriver\UART_TxRx_Function
BSP的demo改过来的;有试过没改之前的效果么,先试试看吧

使用特权

评论回复
板凳
蓝创电子|  楼主 | 2016-1-13 16:28 | 只看该作者
mwang 发表于 2016-1-13 13:41
看样子你是从
.\Mini58\SampleCode\StdDriver\UART_TxRx_Function
BSP的demo改过来的;有试过没改之前的效 ...

是参照BSP的demo修改的,但是demo是UART0,改成UART1后,就不能用了?

使用特权

评论回复
地板
mwang| | 2016-1-13 17:01 | 只看该作者
蓝创电子 发表于 2016-1-13 16:28
是参照BSP的demo修改的,但是demo是UART0,改成UART1后,就不能用了?

看不到你UART时钟初始化的部分,先确认一下UART时钟有打开,时钟源选择正确。
然后,有个地方需要注意一下
你用的是printf打印字符,keil下我们有对printf进行重写,我们在retarget.c里默认串口0。你改用了其他串口需要修改一下。
相关定义的代码:
#ifdef DEBUG_ENABLE_UART1
#define DEBUG_PORT UART1
#else
#define DEBUG_PORT UART0
#endif

这里你需要自行修改一下。


或者
你不要用printf打印输出,用函数UART_WRITE(UART1,InChar)试试

使用特权

评论回复
5
dentsgot| | 2016-1-13 20:47 | 只看该作者
波特率对不对啊,乱码的话估计得先考虑波特率

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

1

粉丝