关于几个频率设置之间的关系
这里问个基本问题,虽然很基本,但好像也没有哪里解释得特别清楚。我用STC8H编程时,有3处可以设置频率的地方,但它们之间的关系到底如何似乎没有阐述清楚,下面是我个人的理解:1. STC-ISP软件/硬件选项标签内,这里设置的IRC频率直接操控芯片内部的IRC,对芯片运行频率有重要影响;
2. 编程里的宏定义,如 #define MAIN_Fosc 22118400L。对有些串口通信、EEPROM之类的程序,这个参数后面还要用来计算波特率定时器重装值、IAP_TPS等参数,是必须的。但其他一些情况下,我发现程序中并没有用到这个MAIN_Fosc(实验箱一般这样命名,pdf手册命名Fosc),甚至将这一句注释掉也可以(只要ISP软件中选对频率)。这里是不是仅仅是提醒自己在STC软件下载时IRC改为相应频率,只是这个提醒作用呢?
3. Keil/魔术棒/Target标签内的 Xtal(MHz)。这里我有些奇怪,因为之前我用别家AT89S51的开发板时,板上晶振是11.0592MHz,这里就需要输入11.0592。但对STC的芯片来说,这里的数值好像没有作用,是STC的下载软件默认值用IRC,就自动把这里屏蔽了吗?这里的数字是没有任何意义吗?
不知我上述理解是否正确,希望高手不吝赐教!谢谢!
1. STC-ISP软件/硬件选项标签内 ------这个必须设置好 否则串口通讯出错
3. Keil/魔术棒/Target标签内的 Xtal(MHz)------不用管它也可以 2. 编程里的宏定义,如 #define MAIN_Fosc 22118400L
===这是通知编译器 自动帮你计算 宏定义,不用你手动算
不是程序,是预编译
2. 没用到的时候这一行就没有作用了,可以去掉。 神农鼎 发表于 2024-2-26 10:46
2. 编程里的宏定义,如 #define MAIN_Fosc 22118400L
===这是通知编译器 自动帮你计算 宏定义,不用你手动 ...
我知道是预编译,但有些程序里这句宏定义直接删除,也是可以正常运行的。 谢谢楼上几位朋友的回答{:4_197:} pursuing 发表于 2024-2-26 19:17
我知道是预编译,但有些程序里这句宏定义直接删除,也是可以正常运行的。 ...
无所谓有没有的,,只是方便计算,, 减少自己算的麻烦,让编译器帮你算
3、以前软仿真需要设置keil里面的晶振频率 谢谢几位帮忙解答
页:
[1]