- 打卡等级:偶尔看看III
- 打卡总天数:57
- 最近打卡:2025-11-02 09:54:45
已绑定手机
金牌会员
- 积分
- 1075
|
好像有时候也不行,请看:
void main(void)
{
//<<AICUBE_USER_MAIN_INITIAL_BEGIN>>
// 在此添加用户主函数初始化代码
u8 sm=1; //因为打印1次说明未能顺利执行,只能先在主循环打印一次
u8 i=0;
u8 tmp[8];
//<<AICUBE_USER_MAIN_INITIAL_END>>
SYS_Init();
//<<AICUBE_USER_MAIN_CODE_BEGIN>>
// 在此添加主函数中运行一次的用户代码
P40 = 0; //三极管引脚输出低电平
P60 = 0; //输出低电平 //这2颗灯亮了
P61 = 0; //输出低电平 //说明这段程序是执行了
//delay_ms(2000);//经STC论坛版主erci***指导“print_usb并非阻
//塞函数,所以在打开串口前可能已经打印完成了。 所以延时应放在打印前,或者在循环里
//每隔1s反复打印这样每次打开串口都能看到。”
// printf_usb( " A 首先从24C02读取8个数\xfd: \r\n");
// printf_usb( " B 把从24C02读取8个数\xfd加1后写入24C02:\r\n");
// printf_usb( " C 把从24C02读取8个数\xfd减1后写入24C02:\r\n");
// printf_usb( " D 把24C02地址0x0000的8个数\xfd清零: \r\n");
while(bUsbInBusy==1) //cdc串口发数据之前可以判断一下当前的usb状态,等他空闲了再发,
//实测这样一点问题没有
{
printf_usb( " A 首先从24C02读取8个数: \r\n");
printf_usb( " B 把从24C02读取8个数加1后写入24C02:\r\n");
printf_usb( " C 把从24C02读取8个数减1后写入24C02:\r\n");
printf_usb( " D 把24C02地址0x0000的8个数清零: \r\n");
}
IIC_Read_NGByte(0,tmp, 8); //读地址0开始的8个字节
for( i=0;i<8;i++ )
{
printf_usb( "%u\t",tmp );
} //为什么串口助手看不到以上打印结果?
//可能是USB查询方式,只有在回答查询的时候才输出?
for(i=0; i<8; i++) LED8 = tmp & 0x0f; //数码管打印8个字节
//<<AICUBE_USER_MAIN_CODE_END>>
while (1)
{.................
如果我不延时,只是判断有没有准备好,也没什么用,没准备好也没有等待动作,
感觉反正USB没准备好,就直接执行下一段程序了 |
|