打印
[技术问答]

URAT0发送数据问题

[复制链接]
793|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tinan|  楼主 | 2017-3-30 13:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单步运行以下代码可以正常发送24个字节数据  但是全速运行的时候为什么只发送16个字节的数据
void UART_Send(void)
{
                int32_t i=0;
                P32=1;                                                //设置485为输出模式
                int32_t arr[24]={0xFF,0xFF,0x11,0x53,0x80,0x00,0x01,0x00,0x00,0x01,0x00,0xE6,0x9A,0x97,0x9A,0x6A,0x50,0x39,0xA5,0x66,0xE6,0x95,0x98,0xA5};
                for(i=0;i<24;i++)
                {
                                UART_WRITE(UART0,arr[i]);
                }       
}
沙发
zhuotuzi| | 2017-3-30 20:21 | 只看该作者
你的for循环设置的是24啊,难道全速时候 没有执行完就跳出了?

使用特权

评论回复
板凳
zhuotuzi| | 2017-3-30 20:22 | 只看该作者
void UART_Send(void)
这个函数你可以设置成带参数的,可以用指针传递,然后通过结束符号判断是否发送结束。while没有遇到结束符号时候一直移动指针发送。

使用特权

评论回复
地板
天灵灵地灵灵| | 2017-3-30 20:36 | 只看该作者
没看出来毛病,但是不知道数组是什么ASCII码,不会有结束符吧?

使用特权

评论回复
5
Lbsonggz| | 2017-4-1 22:37 | 只看该作者
0xff和0x00等在通讯中有特殊含义,对着ASCII码表查查,也与使用的串口软件有关系,很多字符有特殊含义或标记是不可见的

使用特权

评论回复
6
a_ziliu| | 2017-4-3 22:30 | 只看该作者
UART_WRITE中,判斷uart 是不是fifo full,  如果是full的時侯等一下,怕被後面的資料蓋過去。
void SendChar_ToUART(int ch)
{
    while(uart0->FSR & UART_FSR_TX_FULL_F_Msk);
    uart0->THR = ch;
}

使用特权

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

本版积分规则

1

主题

1

帖子

0

粉丝