printf打印输出的读数不对帮忙指点
中断部分代码这样,用串口助手调试,输入十六位数30,接收的数值怎么多了一个0,怎么不是这个数值 “ n.val=0 ” ,大家帮忙指点下
【新提醒】printf函数 的 格式参数; USB接口 使用 printf 打印数据 - 串行口,DMA支持的4组串口,RS232,RS485,Modbus, CRC16 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
void uart() interrupt 4 //串口通信中断函数
{
u8 rec_data;
//unsigned char ch;
RI = 0; //清除接收中断标志位
rec_data=SBUF; //存储接收到的数据
// P0=SBUF;
ch=SBUF;
TI=1; //使用printf必须要标志位为1
// printf("A");
// if(P0_0==0)
// { LED1=1;printf("n0.val=0\XFF\XFF\XFF\XFF"); TI=0; }
switch(ch)
{
case 0x30:LED3=0; printf("n0.val=0\XFF\XFF\XFF\XFF"); TI=0;break;
你好,发送的值30,怎么也被打印输出,这个值没有在输出范围里面
SBUF=rec_data;这段造成的? 哈里 发表于 2024-10-6 22:05
你好,发送的值30,怎么也被打印输出,这个值没有在输出范围里面
使用stdio的printf就不要用uart的中断了,不然处理起来很麻烦
表现符合代码
谁教你在中断里用printf?
使用不熟练,和我开始一样的{:5_310:}
页:
[1]