圈圈.ZC问题
1、书P55(Pdf.P68)的最后说到 系统定义的宏 __DATE__、__TIME__、__FILE__、__LINE__,
右键点击“Go To Definition Of '__DATE__'” 或 “Go To Reference Of '__DATE__'”是看不到 定义的,在 AT89X52.H里面搜索 也没找到...
这是 谁定义的?
这里的“系统定义” 是指 C函数库?AT89S52对应的库?操作系统的库?
ZC:自我感觉 应该是 某个预定义的函数库里面的,∵ 好像记得 微软系列的C/C++的IDE里面能用__FILE__、__LINE__之类的宏的。待验证 和 查资料。
2、第2章,里面的串口驱动的代码,只有发送 没有接收,如何实现接收的功能??
ZC: 网上查到 解决方案:(1)、将接收到的单个信息 保存到一个缓冲区里面。(ZC:何时回显呢?一时没想出来,后来想到 放到主循环里面检测再发送)参考:串口中断服务程序代码集 - CSDN博客.html(http://blog.csdn.net/jiazhen/article/details/2031673)
(2)、中断例程中,接收到信息时,将串口中断关闭,后面再打开串口中断。网络上的资料如下:单片机串口中断问题_百度知道.html(https://zhidao.baidu.com/question/150895645.html)
// 修改的如下,希望楼主看完后明白这个是同步互斥的问题。 void serial(void) interrupt 4 using 3 { uchar i; if(RI) { i = SBUF; ES = 0;//关串行中断 SBUF = i + 1;//中断内再出中断,打乱了中断服务程序的返回。 } ES = 1;//开串行中断 if(TI) { TI=0; } }
ZC:个人觉得 方案(2)有问题:(A)、关闭串口中断到再次打开这段期间内,会不会有信息传来?如果有的话 这个信息就会漏掉了? (B)、上面这段代码中“SBUF = i + 1;”后立即打开串口中断,会不会 接收中断 还没退出 发送中断 就触发了?导致 同样的“中断内再出中断,打乱了中断服务程序的返回”的情况的发生?
3、20180927
3.1、下载 程序到 USB板 中,不成功:
(1)、USB-串口 的线重新插一下
(2)、貌似 下载到 这个USB板 里面的程序的总大小 不能>=17k,不然 "stc-isp-15xx-v6.82H.exe" 会操作不成功...(个人尝试 得到的结果)
(3)、貌似 "stc-isp-15xx-v6.82H.exe" 每次都要重新 关闭/打开,不然好像不太好。这个 只是偶尔的感觉,没有 确认 这个问题到底是不是这样,先记录下来,需要的时候 可以尝试一下 ... ...
4、
5、

浙公网安备 33010602011771号