unsigned char与char的输出是一样的,只是个符号的不同,你的无法输出是哪里,是单片机上么,在单片机上两种类型的变量的输出是一样的,应该是串口配置的问题
如果是上位机上,要看一下你的串口助手的配置显示方式了
可以用强制转换成char变量,操作方法就是在变量在变量前用(char)就可以了,这样就可以输出字符类型了
比如
uchar a=0x31;//数字1
Printf(%c(char)a);
在a前面添加char就可以了
我理解不是串口无法输出unsigned char ,而是无法在上位机显示而已,串口传输数据可不管是不是有符号,发送什么传输什么,只不过在pc机上接收到数据后如果需要显示的话,unsigned char值大于127的无法显示,因为不是可显示字符可以使用16进制方式进行显示,这样就可以显示所有字符了,比如在串口助手中进行如下设置:
先使用16进制的方式,看看是不是可以收到数据,要是可以收到,应该是你的串口助手的显示方式没有设置对
要是收不到,对方一下串口的波特率,检验位,停止位这些参数看是不是一样的