//写串口,打印字符
int sendnTTY(TTY_INFO *ptty, unsigned char *pbuf, int size)
{
int ret, nleft;
unsigned char *ptmp;
ret = 0;
nleft = size;
ptmp = pbuf;
while (nleft>0)
{
pthread_mutex_lock(&ptty->mt);
ret = write(ptty->fd, ptmp, nleft);
pthread_mutex_unlock(&ptty->mt);
if (ret >0)
{
nleft -= ret;
ptmp += ret;
}
}
return size - nleft;
}
上面是我写串口的一个函数,可是我打印出来的中文都是乱码,英文就没有问题。
调用过程:
QString ptxt = "中华人民共和国!";
unsigned char *pbuf = (unsigned char*) ptxt.toUtf8().data();
TTY_INFO *ttyInfo;
ttyInfo = readyTTY(0, 9600, 8, 'N', 1);//设置串口参数
int size = sendnTTY(ttyInfo ,pbuf,ptxt.length());
请教各位解决???帮我想想办法,万分感谢!!!