不是很牛逼 发表于 2026-1-20 11:30:23

从STC8H1K08换AI8H1K28串口打印失败 | 要设置 EEPROM大小

从STC8H1K08换AI8H1K28串口打印失败? 原本STC8H1K08好好的,只换了型号大些的内存 引脚都是一至的烧录进去,串口打印不了?要特色设置?

不是很牛逼 发表于 2026-1-20 16:13:09

ercircle 发表于 2026-1-20 11:53
手册没见有特色配置,代码发来看看,忘了开辟EEPROM?

或者用AiCube重新生成个试下


对就是那个要开辟EEPROM问题,以前的直接烧录,不行就是这个问题。{:ciya:}

不是很牛逼 发表于 2026-1-21 08:28:37

ercircle 发表于 2026-1-20 11:53
手册没见有特色配置,代码发来看看,忘了开辟EEPROM?

或者用AiCube重新生成个试下

大佬,并不是EEPROM问题,最终没有解决,之前好好的,现在是放在循环里能打印,然而初始化上面那个 打印不了?

ercircle 发表于 2026-1-20 11:53:35

手册没见有特色配置,代码发来看看,忘了开辟EEPROM?

或者用AiCube重新生成个试下

ercircle 发表于 2026-1-21 09:06:35

不是很牛逼 发表于 2026-1-21 08:28
大佬,并不是EEPROM问题,最终没有解决,之前好好的,现在是放在循环里能打印,然而初始化上面 ...

不是没打印,上电第一句没来的及打开串口收?用示波器观察是否有发出?

不是很牛逼 发表于 2026-1-21 10:19:42

ercircle 发表于 2026-1-21 09:06
不是没打印,上电第一句没来的及打开串口收?用示波器观察是否有发出? ...
没有波形,并不是没有来得急接收吧?我加了延时和循环次数都没有用? 反正是放在主循环里就可以?,一但主循环放了其他功能函数又不行了,头大? 还会是什么问题?供电太抖动??不应该啊?

ercircle 发表于 2026-1-21 10:36:03


未复现,并且你的波特率计数不对?



//#include "stc8h.h"
//#include "def.h"
//#include "intrins.h"
//u8 y;
//u8 e;
//u8 c;

//void main(){
//        c = 1;
//        y = 2;
//        e = 3;
//        while (1)
//        {
//                y = c+e;
//                c++;
//                e++;
//        }
//}

#include <STC8h.h>
#include <intrins.h>
#include <def.h>

char putchar(char c)
{
    SBUF = c;
    while(!TI);
    TI = 0;
    return c;
}

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

    _nop_();
    i = 153;
    j = 49;
    k = 161;
    do
    {
      do
      {
            while (--k);
      } while (--j);
    } while (--i);
}

void Uart1_Init(void)    //150000bps@30.000MHz
{
    SCON = 0x50;      //8位数据,可变波特率
    AUXR |= 0x40;       //定时器时钟1T模式
    AUXR &= 0xFE;       //串口1选择定时器1为波特率发生器
    TMOD &= 0x0F;       //设置定时器模式
    TL1 = 0xFB;         //设置定时初始值
    TH1 = 0xFF;         //设置定时初始值
    ET1 = 0;            //禁止定时器中断
    TR1 = 1;            //定时器1开始计时
                P3M0 = 0x02; P3M1 = 0x01;


}

void main()
{
    u8 i;
    Uart1_Init();
    Delay1000ms();
                printf("dogRST\r\n");
    for(;;)
    {
      // printf("dogRST\r\n");
    }
}

页: [1]
查看完整版本: 从STC8H1K08换AI8H1K28串口打印失败 | 要设置 EEPROM大小