docs(main): document 24MHz ISP burn requirement at top of main.c
Confirms via code inspection that the firmware isn't uniformly driven by MAIN_Fosc: Uart1_Init()'s Timer2 baud-rate reload and rf.c/timer.c's tick-to-microsecond conversion assume an actual 24MHz clock as hardcoded constants, not values computed from MAIN_Fosc. Flashing at a different STC-ISP clock setting would silently break UART baud rate and RF timing without an obvious compile error.
This commit is contained in:
24
App/main.c
24
App/main.c
@@ -9,6 +9,30 @@
|
|||||||
#include "../Drivers/lcd.h"
|
#include "../Drivers/lcd.h"
|
||||||
#include "../Drivers/timer.h"
|
#include "../Drivers/timer.h"
|
||||||
|
|
||||||
|
/* =========================================================================
|
||||||
|
* 【烧录必读】STC-ISP 下载时时钟频率必须选择 24MHz,且不能只改这一处
|
||||||
|
* =========================================================================
|
||||||
|
* 本项目代码里多处对"芯片实际运行在 24MHz"这件事做了硬编码假设,而不是每处都
|
||||||
|
* 从 MAIN_Fosc 动态换算;如果烧录时在 STC-ISP 里选了别的 IRC 频率(或换成外部
|
||||||
|
* 晶振但频率不是 24MHz),下面这些地方会全部跟着出错,不是改一下 config.h 里的
|
||||||
|
* MAIN_Fosc 常量就能自动生效的:
|
||||||
|
* 1. App/config.h:169 MAIN_Fosc = 24000000UL —— 大部分模块的换算基准。
|
||||||
|
* 2. Drivers/timer.c Timer1_Init() 里 1ms 定时重装值由 MAIN_Fosc 动态算出,
|
||||||
|
* 跟着 MAIN_Fosc 改没问题。
|
||||||
|
* 3. App/database.c IAP_TPS 由 MAIN_Fosc 动态算出 (Flash 读写/擦除等待周期),
|
||||||
|
* 跟着 MAIN_Fosc 改没问题,但算错会导致 Flash 读写异常甚至数据损坏。
|
||||||
|
* 4. App/system.c Uart1_Init() 里 Timer2 波特率重装值 (T2L=0xCC, T2H=0xFF)
|
||||||
|
* 是按 24MHz/115200 手工算好直接硬编码的数字,***不会跟着 MAIN_Fosc 变化***,
|
||||||
|
* 实际主频不是 24MHz 时串口波特率会直接算错,调试串口输出全部变乱码。
|
||||||
|
* 5. Drivers/rf.c/timer.c 里所有 EV1527 时序阈值和 RF_Delay_us() 都基于
|
||||||
|
* "Timer0 工作在标准 12T 模式、1 个计数节拍 = 12/Fosc 秒"这个换算关系,
|
||||||
|
* 代码里到处写的 "0.5us/tick"、"* 2UL" 都是 12/24MHz = 0.5us 这个具体
|
||||||
|
* 数字,***同样不会跟着 MAIN_Fosc 变化***,主频不对会导致 RF 收发全部解码/
|
||||||
|
* 发射失败。
|
||||||
|
* 结论:必须保证 STC-ISP 烧录时选择的时钟频率就是 24MHz,代码里各处的计时也
|
||||||
|
* 都是按实际运行在 24MHz 主频来写的,两边必须一致。
|
||||||
|
* ========================================================================= */
|
||||||
|
|
||||||
/* =========================================================================
|
/* =========================================================================
|
||||||
* 系统全局变量定义
|
* 系统全局变量定义
|
||||||
* ========================================================================= */
|
* ========================================================================= */
|
||||||
|
|||||||
Reference in New Issue
Block a user