3100|4

32

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

求一串口程序(C语言) [复制链接]

如何编程?当向串口发送任意的字符串时,PC机上显示相应的字符串。是任意的字符串哦!
与发送单个字符区别在哪里?
望解答,谢谢啦!
此帖出自51单片机论坛

最新回复

字符串就是多个字符的集合,你连续发多个字符就行了。当然发多个字符的时候在发送每一个字符之前都要判断SBUF是不是空的。一般的做程序发送一个字符也是这样做的。一般用一个for循环就行了,判断条件可以是字符串长度,适合字符串长度固定的情况。对于任意字符串,一般可以判断最后一个字符,如果字符不为空就一直发。 假设字符串首地址为point for(temp=point;*temp!=‘/0’;temp++) { if(发送寄存器空)//具体的寄存器位名称看一下书吧,记不清了    SBUF = *temp; } 大概就是这个样子的,具体的细节你自己去研究一下吧。  详情 回复 发表于 2012-10-7 19:42
点赞 关注
 

回复
举报

32

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
怎么没人回复啊?
此帖出自51单片机论坛
 
 
 

回复

32

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
我知道怎么任意发送一个子符,但不知怎么发送字符串。求指点啊。(用的是51)
此帖出自51单片机论坛
 
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

4
 
字符串就是多个字符的集合,你连续发多个字符就行了。当然发多个字符的时候在发送每一个字符之前都要判断SBUF是不是空的。一般的做程序发送一个字符也是这样做的。一般用一个for循环就行了,判断条件可以是字符串长度,适合字符串长度固定的情况。对于任意字符串,一般可以判断最后一个字符,如果字符不为空就一直发。
假设字符串首地址为point
for(temp=point;*temp!=‘/0’;temp++)
{
if(发送寄存器空)//具体的寄存器位名称看一下书吧,记不清了
   SBUF = *temp;
}

大概就是这个样子的,具体的细节你自己去研究一下吧。
此帖出自51单片机论坛

点评

谢谢啦!  详情 回复 发表于 2012-10-8 21:56
 
 
 

回复

32

帖子

0

TA的资源

一粒金砂(中级)

5
 

回复 4楼 jishuaihu 的帖子

谢谢啦!
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表