找回密码
 立即注册
查看: 96|回复: 3

STC11F02E

[复制链接]

该用户从未签到

1

主题

2

回帖

27

积分

新手上路

积分
27
发表于 2023-9-22 16:43:38 | 显示全部楼层 |阅读模式
我有一个STC11F02E,使用STC-ISP串口发送数组给单片机,可是没法接收到数组

这是串口发送数组代码

这是串口发送数组代码
回复 送花

使用道具 举报

该用户从未签到

551

主题

9428

回帖

1万

积分

管理员

积分
14003
发表于 2023-9-22 20:08:28 | 显示全部楼层
烧录时设置为外部时钟
截图202309222006334559.jpg

烧录完停电后再上电,新的设置才生效
截图202309222008253439.jpg


回复 支持 反对 送花

使用道具 举报

该用户从未签到

1

主题

2

回帖

27

积分

新手上路

积分
27
 楼主| 发表于 2023-9-22 23:01:56 | 显示全部楼层
这是接收数组的代码,兄弟可以给我看看嘛,着急
截图202309222301258691.jpg
回复 支持 反对 送花

使用道具 举报

该用户从未签到

1

主题

2

回帖

27

积分

新手上路

积分
27
 楼主| 发表于 2023-9-23 14:53:15 | 显示全部楼层
#include<stc11f04e.h>          //库文件
#include<intrins.h>
//typedef unsigned char uchar;
unsigned char testStr[7] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16,0x17};
unsigned char Rx_buf[8];
unsigned char Rx_flag = 0;
unsigned char index = 0;
unsigned int recv_buf[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
void Delay1ms()                //@11.0592MHz
{
        unsigned char data i, j;

        _nop_();
        i = 11;
        j = 190;
        do
        {
                while (--j);
        } while (--i);
}

void Delay10ms()                //@11.0592MHz
{
        unsigned char data i, j;

        _nop_();
        _nop_();
        i = 108;
        j = 144;
        do
        {
                while (--j);
        } while (--i);
}

void Delay100ms()                //@11.0592MHz
{
        unsigned char data i, j, k;

        i = 5;
        j = 52;
        k = 195;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}  

void Delay1000ms()                //@11.0592MHz
{
        unsigned char data i, j, k;

        i = 43;
        j = 6;
        k = 203;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}   
void Uart_Init(void)                //9600bps@11.0592MHz
{
                SCON = 0x50;                //8位数据,可变波特率
                TMOD = 0x20;
                TH1 = TL1 = 0xfd;
                TR1 = 1;
                ES = 1;
                EA = 1;
}
void TxByte(unsigned char dat){
    SBUF = dat;
    while(!TI);  // 等待数据发送完成
    TI = 0;  // 清除发送完成标志
    Delay10ms();  // 延时一段时间
}

void TxString(unsigned char *dat, unsigned int StrLen){
    unsigned int i;
    for(i = 0; i < StrLen; i++){
        TxByte(dat[i]);
        Delay10ms();  // 延时一段时间
    }
    while(!TI);  // 等待最后一个字节发送完成
    TI = 0;  // 清除发送完成标志
}


//void SendString(char *p)
//{
//    while(*p!='\0')
//    {
//                        TxByte(*p);
//                        p++;
//    }
//}
void main(void){
        Uart_Init();
       
        while(1){
                //TxByte(0x02);
//                if(Rx_flag){
//                        Rx_flag = 0;
//                        TxString(Rx_buf, 8);
//                }
                 TxString("helloworld",10);
                 Delay1000ms();
                //Delay1000ms();
        };

}这段代码串口打印,只能打印出首字母h
回复 支持 反对 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-5-14 14:59 , Processed in 0.063557 second(s), 43 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表