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

2024-12-02 13:43:41
推荐回答(2个)
回答1:

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

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

例: 

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码 但是不需要理解到码表上

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

回答2:

您好:号码 GET来控制ASCII码表,数做一个简单的加法就可以了,因为由此产生的十六进制数为0x00至0x09转换为字符'0'的形式,以'9'(字符'0' ASCII码48),然后得到分配给一个变量,例如数据的数量,则字符被转换为数据48,?则字符可以被输出。