mtlsh 发表于 2020-8-30 01:46:10

坛友们有没有遇到过STC8G1K08-20PIN串口不能使用的,有没有坑要填才能用?


单片机型号: STC8G1K08-20/16PIN (QFN20)
固件版本号: 7.3.10U
板子用USB下载程序没问题, 用串口下载提示找不到目标单片机;
USB下载跑起来后IO可以输出高低电平,但串口乱码,试了串口1 RXD/P3.0, TXD/P3.1和RXD/P3.6, TXD/P3.7都一样。
其他坛友有遇到这种问题吗,请教解决方法? 是不是IC有bug。。。。

贴上官方代码:

#include "reg51.h"
#include "intrins.h"

#defineFOSC11059200UL
#defineBRT(65536 - FOSC / 9600 / 4)

sfrAUXR=0x8e;
sfrT2H=0xd6;
sfrT2L=0xd7;

sfrP0M1=0x93;
sfrP0M0=0x94;
sfrP1M1=0x91;
sfrP1M0=0x92;
sfrP2M1=0x95;
sfrP2M0=0x96;
sfrP3M1=0xb1;
sfrP3M0=0xb2;
sfrP4M1=0xb3;
sfrP4M0=0xb4;
sfrP5M1=0xc9;
sfrP5M0=0xca;

sfrP5    =0xc8;
sfrP_SW1 =0xa2;

bitbusy;
charwptr;
charrptr;
charbuffer;

void UartIsr() interrupt 4
{
if (TI)
{
    TI = 0;
    busy = 0;
}
if (RI)
{
    RI = 0;
    buffer = SBUF;
    wptr &= 0x0f;
}
}

void UartInit()
{
SCON = 0x50;
T2L = BRT;
T2H = BRT >> 8;
        AUXR = 0x15;
wptr = 0x00;
rptr = 0x00;
busy = 0;
}

void UartSend(char dat)
{
while (busy);
busy = 1;
SBUF = dat;
}

void UartSendStr(char *p)
{
while (*p)
{
    UartSend(*p++);
}
}

void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0xFE; //TX ?????,RX?????
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;

        //P_SW1 =0x0;

        P_SW1 &=0x3F;
        P_SW1 |=0x40;
       
UartInit();
ES = 1;
EA = 1;
UartSendStr("uart Test!\r\n" );

while (1)
{
    if (rptr != wptr)
    {
      UartSend(buffer);
      rptr &= 0x0f;
    }
}
}

sfes 发表于 2020-8-30 04:37:45

内部震荡频率,只有串口方式下载才能改。
使用串口下载,要把usb下载用的二极管电容拆除

wye11083 发表于 2020-8-30 06:35:12

sfes 发表于 2020-8-30 04:37
内部震荡频率,只有串口方式下载才能改。
使用串口下载,要把usb下载用的二极管电容拆除 ...

stc还是很强的,我2路adc交替采样总256k,用定时器中断控制,外部每8个sample相加通过1mbps串口打包往外丢,都不带丢字的。只能观测到采样有1cycle的抖动,原因应该是多周期指令带来的中断延迟。

小李非刀 发表于 2020-8-30 23:10:38

串口正常的,建议用串口下载看看。

mtlsh 发表于 2020-8-31 19:44:03

小李非刀 发表于 2020-8-30 23:10
串口正常的,建议用串口下载看看。

我是因为串口不能下载,才用USB下载的。
同样的下载线路,STC15F2K60S2串口下载没问题,而STC8G1K08不能下载。

XTXB 发表于 2020-9-1 10:55:26

好好查查硬件连接

miractech 发表于 2020-9-3 20:11:34

楼主串口问题解决没?我现在也遇到串口不能通讯的问题,我试用的是U2,连简单的发送数据都发不出去,折腾了一天,也没搞定,官方的代码和示例直接编译烧录都不能正常通讯,是不是有什么坑要注意啊???第一次用芯片用到这么难受,真是服了...

mtlsh 发表于 2020-9-3 21:16:16

没弄好, 我不折腾STC了, 换其他IC轻松搞定。。。

miractech 发表于 2020-9-3 21:23:29

mtlsh 发表于 2020-9-3 21:16
没弄好, 我不折腾STC了, 换其他IC轻松搞定。。。

我也不想折腾了,心累.....

mtlsh 发表于 2020-9-3 21:29:57

miractech 发表于 2020-9-3 21:23
我也不想折腾了,心累.....

是的,通过多方面咨询都没解决,果断换方案;心情立马舒畅了。。。

国学芯用 发表于 2020-9-4 09:12:31

mtlsh 发表于 2020-9-3 21:29
是的,通过多方面咨询都没解决,果断换方案;心情立马舒畅了。。。

国学芯用 发表于 2020-9-4 09:18:49

这里面有串口2测试程序

chen849928055 发表于 2020-9-4 09:49:08

这个芯片我也在用,串口正常啊,我是直接用的15w408s的程序直接下载都可以正常运行,楼主是不是哪个地方漏了

Ponker 发表于 2020-9-4 09:57:13

正常。

估计是楼主的USB转TTL兼容性太差
页: [1]
查看完整版本: 坛友们有没有遇到过STC8G1K08-20PIN串口不能使用的,有没有坑要填才能用?