发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名
[问答] 请问这个串口发送字符串一直停在0xFF该怎么办?
75 串口 单片机
分享
用的单片机型号是90C516RD+
我先定义了一个513字节的数组unsigned char xdata buf[513];
初始化全为a,最后一个字节为0
memset(buf, 'a', 512);
buf[512] = 0;
然后我把它发送到电脑串口上
uart_send_str(buf);
相关的函数:
void uart_send_byte(unsigned char byte)
{
    SBUF = byte;
    while(!ti);
    TI = 0;
}
void uart_send_str(unsigned char *s)
{
    while(*s)
    {
        uart_send_byte(*s);
        s++;
    }
}
但是串口软件里面收到了512个0x61之后一直收到0xFF不停了,是哪里的问题?
0
2019-10-18 04:04:53   评论 分享淘帖 邀请回答

相关问题

4个回答
2019-10-18 08:58:41 评论

举报

波特率和其他设置没问题的,接收到了512个0x61,就是a,但是之后一直在发送0xFF停不下来。
我把数组改为511,其他的相关数组长度依次递减一,就达到了想要的效果(接收到了511个'a'就停下来)。
应该是跟这个512有关系,但是我不想不出是什么原因。。。
2019-10-18 09:13:31 评论

举报

感觉题主的功力比我厉害多了
用指针完全的避开了溢出的问题(我想到的唯一答案,所以这题我不会)
居然让程序死在  while里面
你是不是用的系统,是不是系统的问题。
如果知道了问题是什么,说一下,我很好奇
2019-10-18 09:24:27 评论

举报

过奖啦!我觉得C51里面还是尽量少用关于字符串的函数,像strcat之类的,字符串结尾很容易出错,最好还是自己写函数吧
2019-10-18 09:32:44 评论

举报

只有小组成员才能发言,加入小组>>

59个成员聚集在这个小组

加入小组

创建小组步骤

关闭

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

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