单片机 串口接收的字符串如何转为字符

 我来答
XJSZJZ
2014-02-12 · 超过13用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:40.4万
展开全部

楼主你好,楼上兄弟说的太复杂了,

恕我直言 没看懂你想说明神马问题,串口接收到的字符串如何转化成字符,首先字符串是字符的连续储存方式,那么

例: 

char temp[4] = { A, B, C };这是一个标准字符串

那么temp[0]=='A';为真

以此类推temp[1] =='B'

temp[3]  == '/0';//c语言字符串结尾标示符./0转义符

如果你想显示中文那么 中文是16bit的,双字节字符

short temp;
temp=sbuf;将第一个数据获取回来 
temp<<=8;将数据左移8位
temp|=sbuf;将第二次的数据带入进来

可能会我记错了高低位顺序,要是出错可以反过来即可!


小弟告诉你一个最简单最实用的办法 如何把字符中的数字变成变量数据

switch 你会用么 就是开关选择语句


static char temp;//申明一个变量 这是个全局静态变量
temp = sbuf;
switch(temp)
    {
case '0':temp = 0; break;//break必须要加,否则数据覆盖
case '1':temp = 1; break;
case '2':temp = 2;break;
...
}

以此类推 ,这样你的道的字符串或字符数据则能变成数据,

字符串也只是数组而已 而楼主想要的字符也就是其中的一个元素罢了 可以用指针方式提取 亦可以用数组下标提取!这用的都是ascll码 但是不需要理解到码表上

请楼主明察抢答时间 ,楼下请勿复制,祝楼主早日解决程序问题,加油加油

ampvl554
2014-02-12 · TA获得超过1607个赞
知道小有建树答主
回答量:2861
采纳率:0%
帮助的人:1094万
展开全部
您好:号码 GET来控制ASCII码表,数做一个简单的加法就可以了,因为由此产生的十六进制数为0x00至0x09转换为字符'0'的形式,以'9'(字符'0' ASCII码48),然后得到分配给一个变量,例如数据的数量,则字符被转换为数据48,?则字符可以被输出。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式