找回密码
 立即注册
查看: 498|回复: 8

STC8H8K64U USB-CDC有没有串口接通标志位?

[复制链接]
  • TA的每日心情
    开心
    前天 09:22
  • 签到天数: 63 天

    [LV.6]常住居民II

    2

    主题

    14

    回帖

    374

    积分

    中级会员

    积分
    374
    发表于 2023-7-23 12:21:32 | 显示全部楼层 |阅读模式
    用USB_SendData这个函数给电脑上传数据时,当电脑串口助手打开对应串口时,上传数据正常,但如果没有打开串口,程序会卡到这个函数这里,一旦电脑串口助手打开串口,程序就正常了,所以想问一下在使用USB-CDC串口时有没有串口接通标志位?不知道能不能让串口接通时使用此函数,没有接通时不使用?
    123.jpg
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2023-7-24 09:57:39 | 显示全部楼层
    通过判断 “DeviceState” 标志是否等于 “DEVSTATE_CONFIGURED” 来确定接口是否可以正常通信。
    在主循环里判断:
    1.     while (1)
    2.     {
    3.         delay_ms(1);
    4.         KeyResetScan();   //长按P3.2口按键触发软件复位,进入USB下载模式,不需要此功能可删除本行代码
    5.         if(DeviceState != DEVSTATE_CONFIGURED)  //等待USB完成配置
    6.             continue;
    7.         if (bUsbOutReady)
    8.         {
    9.             usb_OUT_done();    //接收应答(固定格式)
    10.             
    11.             printf("OutNumber=0x%X\r\n",OutNumber);  //使用 printf 函数打印接收数据长度
    12.             USB_SendData(UsbOutBuffer,OutNumber);    //发送数据缓冲区,长度
    13.         }
    14.     }
    复制代码

    或者在初始化里判断:
    1. while(DeviceState != DEVSTATE_CONFIGURED);  //等待USB完成配置
    复制代码

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    前天 09:22
  • 签到天数: 63 天

    [LV.6]常住居民II

    2

    主题

    14

    回帖

    374

    积分

    中级会员

    积分
    374
     楼主| 发表于 2023-7-24 11:57:26 | 显示全部楼层
    USB完成配置,这个有的,要想cdc通信,首先得USB完成配置,我是想问如何判断串口助手有没有打开串口,当打开串口时我这边程序是正常的,当关闭串口时程序会卡到USB_SendData这个函数里,所以我想知道如何判断串口助手有没有打开串口,我是想当串口助手打开串口时(先判断一下上位机串口打开了)再使用USB_SendData这个函数给电脑发数据
    串口助手.jpg
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9497

    回帖

    1万

    积分

    管理员

    积分
    14069
    发表于 2023-7-24 12:05:29 | 显示全部楼层
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    前天 09:22
  • 签到天数: 63 天

    [LV.6]常住居民II

    2

    主题

    14

    回帖

    374

    积分

    中级会员

    积分
    374
     楼主| 发表于 2023-7-24 14:12:09 | 显示全部楼层
    神农鼎 发表于 2023-7-24 12:05
    先升级这个
    http://www.stcmcudata.com/STCISP/stc-isp-15xx-v6.91Z.zip
    其他再说

    好的,这个软件更新的频率有点高
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2023-7-24 14:35:01 | 显示全部楼层
    蓝色海阳 发表于 2023-7-24 11:57
    USB完成配置,这个有的,要想cdc通信,首先得USB完成配置,我是想问如何判断串口助手有没有打开串口,当打 ...

    先使用4楼的链接下载最新版本的STC-ISP软件,然后在软件“资料下载”菜单里下载最新的USB CDC库文件试试
    里面也有相关的例子,可以在例子里进行数据发送,然后开关串口试试,这种操作是不会导致卡在发送函数的


    1.png

    USB CDC库没有提供串口开关状态的判断标志。

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    昨天 10:27
  • 签到天数: 122 天

    [LV.7]常住居民III

    3

    主题

    24

    回帖

    777

    积分

    高级会员

    积分
    777
    发表于 2023-7-24 16:52:58 | 显示全部楼层
    USB_SendData 发送之后要调用
    usb_OUT_done();
    要不就是一直卡死
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    0

    主题

    4

    回帖

    42

    积分

    新手上路

    积分
    42
    发表于 2023-8-6 18:04:53 | 显示全部楼层
    https://www.stcai.com/khs 用最新的库没有这个问题
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    0

    主题

    4

    回帖

    42

    积分

    新手上路

    积分
    42
    发表于 2023-8-6 18:06:18 | 显示全部楼层
    https://www.stcai.com/khs 用最新的库没有这个问题
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-18 21:19 , Processed in 0.070894 second(s), 64 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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