本帖最后由 kissdb 于 2023-3-8 10:05 编辑
stc的时钟我一直都是用的内部震荡,没出现这种问题,特意找了8H3K来测试一下
MAIN_Fosc 是11059200,串口波特率是9600,Time 1 1mS进中断一次,1000次为1s,1s发送一次串口数据.
void main()
{
Timer1_init(MAIN_Fosc / 1000);
UART1_config(MAIN_Fosc, Baudrate, 2, interrupt_enable);
EA = 1;
while (1)
{
if (Flag_Sec == 1)
{
Flag_Sec = 0;
Uart1Send(0x12);
}
}
void Time1_isr() interrupt 3
{
++interrupt_cnt;
if (interrupt_cnt >= 1000)
{
interrupt_cnt = 0;
Flag_Sec = 1;
}
}
试了100秒,应该用947减865相差82ms,与下载时的频率调节误差0.087%相差很小,没什么问题
|