STC8H8K64U USB-CDC有没有串口接通标志位?
用USB_SendData这个函数给电脑上传数据时,当电脑串口助手打开对应串口时,上传数据正常,但如果没有打开串口,程序会卡到这个函数这里,一旦电脑串口助手打开串口,程序就正常了,所以想问一下在使用USB-CDC串口时有没有串口接通标志位?不知道能不能让串口接通时使用此函数,没有接通时不使用?通过判断 “DeviceState” 标志是否等于 “DEVSTATE_CONFIGURED” 来确定接口是否可以正常通信。
在主循环里判断:
while (1)
{
delay_ms(1);
KeyResetScan(); //长按P3.2口按键触发软件复位,进入USB下载模式,不需要此功能可删除本行代码
if(DeviceState != DEVSTATE_CONFIGURED)//等待USB完成配置
continue;
if (bUsbOutReady)
{
usb_OUT_done(); //接收应答(固定格式)
printf("OutNumber=0x%X\r\n",OutNumber);//使用 printf 函数打印接收数据长度
USB_SendData(UsbOutBuffer,OutNumber); //发送数据缓冲区,长度
}
}
或者在初始化里判断:
while(DeviceState != DEVSTATE_CONFIGURED);//等待USB完成配置
USB完成配置,这个有的,要想cdc通信,首先得USB完成配置,我是想问如何判断串口助手有没有打开串口,当打开串口时我这边程序是正常的,当关闭串口时程序会卡到USB_SendData这个函数里,所以我想知道如何判断串口助手有没有打开串口,我是想当串口助手打开串口时(先判断一下上位机串口打开了)再使用USB_SendData这个函数给电脑发数据 先升级这个
http://www.stcmcudata.com/STCISP/stc-isp-15xx-v6.91Z.zip
其他再说 神农鼎 发表于 2023-7-24 12:05
先升级这个
http://www.stcmcudata.com/STCISP/stc-isp-15xx-v6.91Z.zip
其他再说
好的,这个软件更新的频率有点高{:smile:} 蓝色海阳 发表于 2023-7-24 11:57
USB完成配置,这个有的,要想cdc通信,首先得USB完成配置,我是想问如何判断串口助手有没有打开串口,当打 ...
先使用4楼的链接下载最新版本的STC-ISP软件,然后在软件“资料下载”菜单里下载最新的USB CDC库文件试试
里面也有相关的例子,可以在例子里进行数据发送,然后开关串口试试,这种操作是不会导致卡在发送函数的
USB CDC库没有提供串口开关状态的判断标志。
USB_SendData 发送之后要调用
usb_OUT_done();
要不就是一直卡死 https://www.stcai.com/khs 用最新的库没有这个问题 https://www.stcai.com/khs 用最新的库没有这个问题
页:
[1]