大家好,我有一个其他帖子提到的问题,因为需求比较急,不知道论坛重复发帖的规则,先说声抱歉。
这个是我的原来问题:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=187
大家好,我也在搜索这个信息,但是我没有实现这个需求。
我的产品用的单片机是STC8G1k08,因为我有多个唤醒源唤醒这个单片机,每个唤醒源都执行不同的行为。因为我所用的其他唤醒源都可以进入中断改变状态,而这个不行。
我现在的问题是,如何知道确实是掉电唤醒定时器进行的唤醒,在文档中提到:
掉电唤醒之后,可以通过读 WKTCH 和 WKTCL 中的内容获取单片机在掉电模式中的睡眠时间。
但是,我该怎么读取这个值呢?
-
- c = 0xaa;
- printf("------%c %c------\n", WKTCH, *c);
- c = 0xab;
- printf("------%c %c------\n", WKTCL, *c);
复制代码
我用上面的代码发现串口打印的数据是:
2D 2D 2D 2D 2D 2D FF 20 00 2D 2D 2D 2D 2D 2D 0A 2D 2D 2D 2D 2D 2D FF 20 00 2D 2D 2D 2D 2D 2D 0A 2D 2D 2D 2D 2D 2D FF 20 00 2D 2D 2D 2D 2D 2D 0A 2D 2D 2D 2D 2D 2D FF 20 00 2D 2D 2D 2D 2D 2D 0A
WKTCH值为FF,0xaa的值为00;请问我该如何判断?
我想再问一个问题,因为串口也可以进行唤醒设备,但唤醒后的串口设备将不会进入串口中断。那么请问有没有寄存器告我这个唤醒是由谁触发的?
假如说我在使用掉电唤醒定时器,我该如何分辨串口中断触发还是由掉电唤醒定时器触发? |