wuzhengmin 发表于 2025-10-4 20:44:35

趁着研究串口,把前几年买的STC-USB LINK 1D也翻出来,先试一下双串口还有没有用?


我总结了一下,上一次玩这个,是用的杜邦线,感觉松松垮垮的,这次我买了个专业是压线钳,自己买头子回来

每一条线都自己压,没理由不成功的:

果然,功夫不负有心人,STC-USB LINK 1D 可以用双串口啦!


并且我发现,使用说明是说S-TxD 和S-RxD 是串口1,SWDDAT和 SWDCLK 是第二串口,实际实验发现不是的

SWDDAT和 SWDCLK 是串口1 COM18 STC USB-Link1 (CDC1)

S-TxD 和S-RxD 是串口2    COM19 STC USB-Link1 (CDC2)

这2个串口我都买了头子,分别在4台PC机证实过了。

wuzhengmin 发表于 2025-10-7 11:20:59

接着看 第二十三集:看门狗

这一讲,内容并不复杂,关键是除了好以下的初始化:

USB复位代码
USBCON = 0X00;
USBCLK = 0X00;
IRC48MCR = 0X00;
delay_ms(10);
而了解看门狗,学会计算喂狗时间和正确喂狗,反倒是很容易理解:


#include " wdt.h"


void WDT_Init(void)   // 看门狗初始化
{
        WDT_CONTR = 0X24;
}
void WDT_Feed(void)   // 看门狗喂狗
{
        WDT_CONTR = 0X34;
}



wuzhengmin 发表于 2025-10-7 11:33:07

注意喂狗时间的计算:

例如我们对WDT_CONTR 的后3位:WDT_PS B2 B1 B0

这3位,取100 的话,分频系数就是32,主频取22.1184M那么时间:

12*32768*36/22118400=0.56888888888秒

冲哥的程序2个延时,一个是400ms,另一个是2ms 我们568.88888ms喂一次狗,足够了



wuzhengmin 发表于 2025-10-7 11:57:13

总之,初始化的时候,不把下面4句写进去,是不能顺利使用看门狗功能的!

        USBCON = 0X00;                                        //usb初始化,112-115没有的话,看门狗是不能执行的
        USBCLK = 0X00;                                        //没有这4行,USB就不能有效的断开,就会进入下载模式
        IRC48MCR = 0X00;                                //我们一定要在这里保证USB有效的断开。
        delay_ms(10);
页: 22 23 24 25 26 27 28 29 30 31 [32]
查看完整版本: 冲哥32位8051视频教程疑问解答贴