51单片机发送int型数据时,如 int a;能直接SBUF=a;吗? 据说单片机发送缓冲区没有设置为双缓冲结构。。
那发送int型数据时单片机是怎么操作的?inta;SBUF=a;编译的时候没有错误,那么单片机执行的时候,是怎么执行的呢?先送低八位,串口就开始发送,再送高八位,是不是就...
那发送int型数据时单片机是怎么操作的?
int a;
SBUF=a;
编译的时候没有错误,那么单片机执行的时候,是怎么执行的呢?
先送低八位,串口就开始发送,再送高八位,是不是就覆盖了还没有发送的低八位?
对串口发送这一块真是摸不透啊 展开
int a;
SBUF=a;
编译的时候没有错误,那么单片机执行的时候,是怎么执行的呢?
先送低八位,串口就开始发送,再送高八位,是不是就覆盖了还没有发送的低八位?
对串口发送这一块真是摸不透啊 展开
7个回答
展开全部
这个肯定要分开的啦。int的范围是-32768到32768的。如果是unsigned就是0到65536.是双字节的。如哗段果你要发送到单片机的话肯定要发送两次的啦。如果先发送高字节再发送低字节。你接收的时候再处理吗。这样就可以了。不可能一次都能接收问int的。因为尘棚SBUF是单派芦则字节的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SUBF在发送16位数据时,只把低8位(低字节)的内容发送了咐雀,高字节的被抛弃。
如衡物早果要想发送完整的int,就需要蚂启将int型数据分为两个字节分别发送,接收的那一方将收到的2字节重新组合成int。
执行过程可以看DEBUG模式下产生的汇编代码。
如衡物早果要想发送完整的int,就需要蚂启将int型数据分为两个字节分别发送,接收的那一方将收到的2字节重新组合成int。
执行过程可以看DEBUG模式下产生的汇编代码。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正确的扮腊方式是,
SBUF=a;
等发送盯锋寄存器凯缺晌空闲后,再
SBUF=a>>8;
SBUF=a;
等发送盯锋寄存器凯缺晌空闲后,再
SBUF=a>>8;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询