用void USB_SendData(BYTE *dat, int size)函数发送也是一样的结果
完整代码打包个发上来看看 本帖最后由 乘风飞扬 于 2023-3-27 10:40 编辑
baigezy 发表于 2023-3-27 00:08
void Timer0_Isr(void) interrupt 1
{
if( ++j >= 1000)
你期望是1秒钟发送一次,可是实际的代码在j 大于等于1000后每次都会执行printf指令,直到 j 溢出再次从 0 开始计数:
如果想达到1秒钟发送一次的效果,在执行 if 条件语句里面加一条清除 j 的指令。
void Timer0_Isr(void) interrupt 1
{
if( ++j >= 1000)
{
j = 0; //清除 j 重新计数
printf("测试!!!\r\n");
}
}
加了的,忘了复制上来,我怀疑芯片有问题,一样的代码屠龙刀上跑没问题,开天斧就不行,我怀疑是焊接排针的时候静电导致芯片部分损坏了,又买了一块开天斧回来测试。 初始化后延时2秒再主动发出数据,或者查询USB初始化是否完成,完成后再发送。
EA = 1;
uart_init();
usb_init();
// delay_ms(1500);
while(DeviceState != DEVSTATE_CONFIGURED) { NOP(3); }
新到的开天斧一切正常,说明之前的那块确实有问题,但是很据迷惑性,其他端口一切正常,就是加载USB-CDC库后,发送数据有问题,接收都没事。有遇到相同问题的朋友可以参考一下。
页:
1
[2]