pursuing 发表于 2024-2-26 10:28:33

关于几个频率设置之间的关系

这里问个基本问题,虽然很基本,但好像也没有哪里解释得特别清楚。我用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,就自动把这里屏蔽了吗?这里的数字是没有任何意义吗?

不知我上述理解是否正确,希望高手不吝赐教!谢谢!

wjhhhhh 发表于 2024-2-26 10:44:31

1. STC-ISP软件/硬件选项标签内      ------这个必须设置好 否则串口通讯出错

3. Keil/魔术棒/Target标签内的 Xtal(MHz)------不用管它也可以

神农鼎 发表于 2024-2-26 10:46:58

2. 编程里的宏定义,如 #define MAIN_Fosc 22118400L

===这是通知编译器 自动帮你计算 宏定义,不用你手动算
       不是程序,是预编译


kksk 发表于 2024-2-26 10:54:00

2. 没用到的时候这一行就没有作用了,可以去掉。

pursuing 发表于 2024-2-26 19:17:28

神农鼎 发表于 2024-2-26 10:46
2. 编程里的宏定义,如 #define MAIN_Fosc 22118400L

===这是通知编译器 自动帮你计算 宏定义,不用你手动 ...

我知道是预编译,但有些程序里这句宏定义直接删除,也是可以正常运行的。

pursuing 发表于 2024-2-26 19:18:14

谢谢楼上几位朋友的回答{:4_197:}

_奶咖君_ 发表于 2024-2-26 20:35:35

pursuing 发表于 2024-2-26 19:17
我知道是预编译,但有些程序里这句宏定义直接删除,也是可以正常运行的。 ...

无所谓有没有的,,只是方便计算,,

神农鼎 发表于 2024-2-26 21:09:43

减少自己算的麻烦,让编译器帮你算

jwd 发表于 2024-2-26 21:45:47

3、以前软仿真需要设置keil里面的晶振频率

pursuing 发表于 2024-2-27 10:06:11

谢谢几位帮忙解答
页: [1]
查看完整版本: 关于几个频率设置之间的关系