圈圈.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、

 

posted @ 2018-03-01 15:12  DanPianJi  阅读(184)  评论(0)    收藏  举报