连续按几次C
数码管再大都是F,而串口助手是对的
可以在0-255之间跳变
最大的255:
数码管是FFFFFFFF:
而串口助手:
谈一下使用了几天的体会:
本来我是打算好好学习一下USB-CDC的,结果老师要求先看3集的AiCube
肯定不是第一次看,看完觉得挺好的,起码把架子搭起来
但是遇到细节问题:始终看不懂自动生成的一些代码,还有细节搞不清楚:
例如:
////////////////////////////////////////
// 项目主函数
// 入口参数: 无
// 函数返回: 无
////////////////////////////////////////
void main(void)
{
//<<AICUBE_USER_MAIN_INITIAL_BEGIN>>
// 在此添加用户主函数初始化代码
u8 i=1;
u8tmp;
//<<AICUBE_USER_MAIN_INITIAL_END>>
SYS_Init();
//<<AICUBE_USER_MAIN_CODE_BEGIN>>
// 在此添加主函数中运行一次的用户代码
P40 = 0; //三极管引脚输出低电平
P60 = 0; //输出低电平 //这2颗灯亮了
P61 = 0; //输出低电平 //说明这段程序是执行了
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查询方式,只有在回答查询的时候才输出?
delay_ms(2000);
for(i=0; i<8; i++)LED8 = tmp & 0x0f; //数码管打印8个字节
//<<AICUBE_USER_MAIN_CODE_END>>
while (1)
{
//USBLIB_OUT_Done(); //查询方式处理USB接收的数据
//<<AICUBE_USER_MAIN_LOOP_BEGIN>>
// 在此添加主函数中用户主循环代码
这5句打印函数,执行了么?
为什么串口助手上一点都看不到?
之前我就遇到过打印函数执行后,串口没有任何痕迹,也没通道阻塞死机之类的
完全没办法解决,也不知道是什么原因引起,讲真,还不知道问谁..............
这类问题,前年遇到后找了好几个学校的老师问,也是没什么有效的答案
这种不能执行串口打印的问题,其实挺麻烦的,因为没有提示信息,人家不知道ABCD是什么功能
所以我怀疑这个AiCube 是否在USB进入查询状态的时候,顺手把缓冲器清除掉了?
当然也可能不是,因为我试过一次,有一句话怎么都不能打印到串口助手去,后来不知道无意改了什么符号,一下就OK了
所以控制感好差........................
wuzhengmin 发表于 2025-10-28 18:56
这种不能执行串口打印的问题,其实挺麻烦的,因为没有提示信息,人家不知道ABCD是什么功能
所以我怀疑这个 ...
printf_usb并非阻塞函数,所以在打开串口前可能已经打印完成了。
所以延时应放在打印前,或者在循环里每隔1s反复打印这样每次打开串口都能看到。
ercircle 发表于 2025-10-28 23:08
printf_usb并非阻塞函数,所以在打开串口前可能已经打印完成了。
所以延时应放在打印前,或者在循环里每 ...
感谢您的耐心指导,我按照您的指导,在循环里面打印,就可以看到啦!
有机会来顺德伦教,请连线我17364970665,请你吃饭喝茶聊天!
剩下的AT2402多字节读写,我现在是用平时用的方法,AiCube 自动生成的读一个字节,写一个字节,我还不会把它改写成多字节读写,慢慢研究.......
再一次感谢您的指导!
O
今晚冲完凉,我忽然发现人家AiCube ,是何等的醒目,我一直没看懂的一个字节的读写,原来是他已经帮我准备好ASK 和NASK 了
我根本不用分解这个问答动作,直接设个变量接受就可以啦!
真是老啦,反应慢的出奇!
感谢荣誉版主:erci*** 的耐心指导,我好像理解啦,谢谢大侠!