本帖最后由 逍遥派掌门 于 2018-1-16 17:50 编辑
看到STC8的片子资源不错,到淘宝搞了两片以及转接板(转成DIP40的),然后接到STC89的开发板上,
硬件电路没有问题,
ISP下载程序非常顺利。用的是
STC自家的ISP软件,还带串口助手的。
简单的写了个串口1的中断程序,没有想到接收那里居然没有反应,同样的代码在STC89里可是跑成功的,
折腾了好久,就是失败,到STC那里提出这个问题,结果好几天都没有答复。
怀疑是STC8的片子的BUG,请网友讨论。
程序:
- void UartInit(void) //115200bps@11.0592MHz
- {
- P3M0 = 0xFF; // 设置强挽推
- P3M1 = 0x00;
-
- SCON = 0x50;
- T2L = BRT;
- T2H = BRT >> 8;
- AUXR = 0x15;
-
- ES = 1;
- EA = 1;
- }
- void serial() interrupt 4
- {
- if (RI) // 这里一直进不去,P10没有动静
- {
- RI=0;
- P10 = ! P10;
- }
- if (TI) // 这里成功的,没有问题
- {
- .......
- }
- }
复制代码
主程序就是:
UartInit ; while(1){}; 不写出来了,
用哪个型号测试的?
我用STC8A8K64S4A12测试,代码也是ISP软件STC8型号那里复制下来的,结果是中断发送可以,中断接收无法执行到。
特意按照datasheet 和ISP 的要求,设置I/O为挽推了(BTW: ISP软件里的范例没有设置),怎么折腾都无果。这么简单的代码,在任何一个型号的51片子都通用啊 。
咨询STC那里,一点反馈都没有,所以怀疑。
此问题不解决,不敢用这片子啊。
STC8A8K系列我用了几个产品,串口正常的。
RX引脚用推挽?是不是有问题哦
一周热门 更多>