WiringPi串行输出非UTF-8字符

时间:2018-08-03 04:04:03

标签: utf-8 raspberry-pi wiringpi

我正在试验connectionPi串行库和树莓派3。目前,我在树莓派上短路了TX和RX引脚,正在向串行线写入字符,然后尝试读取输出。我正在运行下面的代码。

#include <wiringPi.h>
#include <wiringSerial.h>
#include <iostream>
#include <string>

int main(void){

    if(wiringPiSetup == -1){return -1;}

    int fd;
    std::string device = "/dev/ttyS0";

    fd = serialOpen(device.c_str(), 115200);

    std::string command = "AT";

    serialPuts(fd, command.c_str());

    /* For whatever reason, serialDataAvail(fd) returns 0 here so I am
       manually setting chars so the loop below will run */

    int chars = 2; 
    //std::cout << "Char Available: " << chars << std::endl;

    for(int i = 0; i < chars; i++){
        std::cout << serialGetchar(fd);
    }

    std::cout << "\n";

    serialFlush(fd);
    serialClose(fd);

    return 1;

}

当我使用 serialGetchar(fd)读取字符时,会得到 UTF-8 字符代码的一部分。该程序的输出如下。

6584

1-为什么它们不显示为完整的UTF-8代码A(\ u0065)和T(\ u0084)?

2-什么是解决格式问题的最佳方法?有没有办法从serialGetchar(fd)读取输出作为正常字符,还是我需要解析输出并将其转换?

3-为什么即使有两个字符,serialDataAvail(fd)仍返回0?

0 个答案:

没有答案