//写串口,打印字符
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());
请教各位解决???帮我想想办法,万分感谢!!!