找回密码
 立即注册
查看: 330|回复: 5

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

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-17 00:04:36
已绑定手机

142

主题

1688

回帖

2563

积分

金牌会员

积分
2563
发表于 2024-11-30 23:25:28 | 显示全部楼层 |阅读模式
我配置好uartsend ,

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

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-17 00:04:36
已绑定手机

142

主题

1688

回帖

2563

积分

金牌会员

积分
2563
发表于 2024-11-30 23:46:14 | 显示全部楼层
搞定了..哈哈哈
void SendIntViaUSB(int value) {
    uint8_t buffer[4];  // 假设int是4个字节
    // 将整数转换为字节数组
    buffer[0] = (value >> 24) & 0xFF;
    buffer[1] = (value >> 16) & 0xFF;
    buffer[2] = (value >> 8) & 0xFF;
    buffer[3] = value & 0xFF;

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

          SendIntViaUSB(dw);

点评

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:209
  • 最近打卡:2025-06-17 08:51:39
已绑定手机

67

主题

1926

回帖

4307

积分

荣誉版主

无情的代码机器

积分
4307
发表于 2024-12-1 00:03:16 | 显示全部楼层
可以这样 USB_SendData((uint8_t *)&value,sizeof(value));,默认小端,要是大端发送就要用你这个函数了
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-17 00:04:36
已绑定手机

142

主题

1688

回帖

2563

积分

金牌会员

积分
2563
发表于 2024-12-1 00:33:16 | 显示全部楼层
erci*** 发表于 2024-12-1 00:03
可以这样 USB_SendData((uint8_t *)&value,sizeof(value));,默认小端,要是大端发送就要用你这个函数了 ...

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

void usbsend(int value) {
   xdata unsigned char  buffer[1];  

    buffer[0] = value & 0xFF;

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-06-17 09:09:48
已绑定手机

79

主题

5137

回帖

9134

积分

超级版主

DebugLab

积分
9134
发表于 2024-12-1 10:47:07 | 显示全部楼层
vb2*** 发表于 2024-11-30 23:46
搞定了..哈哈哈
void SendIntViaUSB(int value) {
    uint8_t buffer[4];  // 假设int是4个字节

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-17 00:04:36
已绑定手机

142

主题

1688

回帖

2563

积分

金牌会员

积分
2563
发表于 2024-12-1 11:36:45 | 显示全部楼层
Debu*** 发表于 2024-12-1 10:47
可以的,这样就是数字了,还可以每个字节或上0x30,转换成字符,用ASCII文本模式显示,再加上0x0D 0x0A回 ...

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

void usbsend(int value) {
       

       
   xdata unsigned char  buffer[1];  // 1个字节

    buffer[0] = value & 0xFF;

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


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

回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-17 18:51 , Processed in 0.286285 second(s), 81 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表