问题已经解决了,问题出在定时器上
由于使用stc的库函数进行定时器的初始化,没有在最后置EA=1导致定时器中断不会触发。
大家如果同样使用stc15库进行开发中如果一样使用定时需要注意以下几点:
1、定时器的数量,如stc15w404as只有两个定时器分别为0和2,而stc15库时支持的定时器不止这两个,要注意,否则比如在404as上用定时器1是无论如何也没有结果的
2、库的示例有关定时器初始化Timer_config中没有把EA=1帮你写好,在函数末尾自己手动加一下,否则会出和我一样的问题,测试stc的示例时定时器ok,自己写的时候没有注意到原来示例在main里多了一句EA=1
3、关于定时器的精度,由于stc15系列内置有晶振,通过isp软件可以检测到晶振的参数,在设置定时器时注意自己使用的芯片内部晶振参数,如404as用的是11059200,需要手动修改stc15库的MAIN_Fosc定义达到高精度
4、最后说一下stc的isp软件带有定时器计算工具非常好用,stc的isp工具用好了就是百宝箱啊
|