打印

PIC单片机串口发送出错

[复制链接]
1913|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
战地记者|  楼主 | 2012-8-16 11:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIC24F的单片机采用查询发送方式:
void uart1_send(unsigned char sendData)
{
//Notice: UxSTAbits.UTXEN don't clear 0, else be delayed 1-bit-cycle
//123456789
U1STAbits.UTXEN = 1;
U1TXREG = sendData;
delay_nop();  //3.9US
//delay_nop();
while (!U1STAbits.TRMT);
//while (!U1STAbits.UTXBF);
U1STAbits.UTXEN = 0;

}

/*********************************************************************************************************************
函数功能:   串口查询方式发送数据
输入参数:   要发送的数组指针,数组长度
输出参数:   无
改变参数:   UART发送缓冲区
*/
void uart1_send_string(const UINT8* pCmd, const UINT8 length)
{
    UINT8  i;

    for(i=0;i<length;i++)
    {
      
  //  U1TXREG = sendData;   
       U1TXREG=pCmd[i];
  U1STAbits.UTXEN = 1;
delay_nop();
  delay_nop();
        while(!U1STAbits.TRMT)
          {
            #ifdef WATCHDOG_ENABLE
            feedWatchDog();
            #endif
           }
  U1STAbits.UTXEN = 0;
    }
   
}

发送数据的时候比如发送81 00 01 02 03 04 05 FF  
点发送一次的时候,总是第一字符81出错,最后还多增加字符00,
如F8 00 01 02 03 04 05 FF 00 .
连续发送的时候则正确。而且单独发送一个字符的时候,也会偶尔多出个00.
查了下,不知道原因。
沙发
yewuyi| | 2012-8-17 10:22 | 只看该作者
这么简单的对手册的事情就不要求别人帮忙了吧?

自己看数据手册解决吧。

使用特权

评论回复
板凳
仰望星期五| | 2013-3-2 11:54 | 只看该作者
想和楼主交流一下看门狗的内容、

使用特权

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

本版积分规则

97

主题

487

帖子

1

粉丝