vb2002 发表于 2024-11-30 23:25:28

UartSend可以发送字节变量.usbsenddata可以吗?

我配置好uartsend ,

就可以发送单字节的变量了
USB_SendData( 变量);
这样不行. .或者说有什么办法可以直接USB_SendData (变量); 吗
有啥办法可以直接不用printf 打印吗
现在看的冲哥的ai8051 视频
看到下载那里突然想到的

vb2002 发表于 2024-11-30 23:46:14

搞定了..哈哈哈
void SendIntViaUSB(int value) {
    uint8_t buffer;// 假设int是4个字节
    // 将整数转换为字节数组
    buffer = (value >> 24) & 0xFF;
    buffer = (value >> 16) & 0xFF;
    buffer = (value >> 8) & 0xFF;
    buffer = value & 0xFF;

    // 发送数据
    USB_SendData(buffer, 4);// 发送4个字节
}

          SendIntViaUSB(dw);

ercircle 发表于 2024-12-1 00:03:16

可以这样 USB_SendData((uint8_t *)&value,sizeof(value));,默认小端,要是大端发送就要用你这个函数了

vb2002 发表于 2024-12-1 00:33:16

ercircle 发表于 2024-12-1 00:03
可以这样 USB_SendData((uint8_t *)&value,sizeof(value));,默认小端,要是大端发送就要用你这个函数了 ...

我改成这样了. 感觉和以前uartsend差不多了

void usbsend(int value) {
   xdata unsigned charbuffer;

    buffer = value & 0xFF;

    USB_SendData(buffer, 1);
}
然后要发送int 就这样,char类型就注释掉        usbsend((dw>>8)&0xff);       
        usbsend((dw>>8)&0xff);               
        usbsend(dw&0xff);

DebugLab 发表于 2024-12-1 10:47:07

vb2002 发表于 2024-11-30 23:46
搞定了..哈哈哈
void SendIntViaUSB(int value) {
    uint8_t buffer;// 假设int是4个字节


可以的,这样就是数字了,还可以每个字节或上0x30,转换成字符,用ASCII文本模式显示,再加上0x0D 0x0A回车换行

vb2002 发表于 2024-12-1 11:36:45

DebugLab 发表于 2024-12-1 10:47
可以的,这样就是数字了,还可以每个字节或上0x30,转换成字符,用ASCII文本模式显示,再加上0x0D 0x0A回 ...

这个是我现在的代码~
如果加上您说的ASCII码的话,加在哪里哦?
转换以后,我用usbsend 发送的就是10进制了是吗?

void usbsend(int value) {
       

       
   xdata unsigned charbuffer;// 1个字节

    buffer = value & 0xFF;

    USB_SendData(buffer, 1);// 发送1个字节
}


                usbsend((zg>>8)&0xff);        //发送int
                usbsend(zg&0xff);             //发送int
                usbsend(dw );                  //发送char

页: [1]
查看完整版本: UartSend可以发送字节变量.usbsenddata可以吗?