这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 嵌入式开发» MCU» Why?STC单片机STC8G1K08-20PIN串口不能使用的!

共8条 1/1 1 跳转至

Why?STC单片机STC8G1K08-20PIN串口不能使用的!

工程师
2020-09-03 20:41:05 打赏

搞了几天了,还没解决,头大啊!


我用的单片机型号: 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"

#define FOSC 11059200UL
#define BRT (65536 - FOSC / 9600 / 4)

sfr AUXR = 0x8e;
sfr T2H = 0xd6;
sfr T2L = 0xd7;

sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xc9;
sfr P5M0 = 0xca;

sfr P5 = 0xc8;
sfr P_SW1 = 0xa2;

bit busy;
char wptr;
char rptr;
char buffer[16];

void UartIsr() interrupt 4
{
if (TI)
{
TI = 0;
busy = 0;
}
if (RI)
{
RI = 0;
buffer[wptr++] = 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++]);
rptr &= 0x0f;
}
}
}




关键词: STC8G1K08-20PIN 串口 uart

工程师
2020-09-03 20:48:16 打赏
2楼

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


工程师
2020-09-03 20:51:36 打赏
3楼

好好查查硬件连接!


工程师
2020-09-03 20:55:41 打赏
4楼

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


菜鸟
2021-01-21 10:48:55 打赏
5楼

已经搞了两三天,毫无眉目,官方例程,网上资料都试过,石沉大海。


菜鸟
2022-02-04 11:27:28 打赏
6楼

定时器

芯片型号 : STC8F1K08S2


关于此芯片的重要说明:

芯片封装上的丝印错误

批号为A665856.XD的SOP8封装实际为A版芯片

正确的丝印应该为A665856.XA

批号为1812A665856.XD的SOP16封装实际为A版芯片

正确的丝印应该为1812A665856.XA



专家
2022-02-04 11:31:20 打赏
7楼

谢谢分享


工程师
2022-02-07 22:43:18 打赏
8楼

代码写的非常干练


共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]