从STC8H1K08换AI8H1K28串口打印失败 | 要设置 EEPROM大小
从STC8H1K08换AI8H1K28串口打印失败? 原本STC8H1K08好好的,只换了型号大些的内存 引脚都是一至的烧录进去,串口打印不了?要特色设置?ercircle 发表于 2026-1-20 11:53
手册没见有特色配置,代码发来看看,忘了开辟EEPROM?
或者用AiCube重新生成个试下
对就是那个要开辟EEPROM问题,以前的直接烧录,不行就是这个问题。{:ciya:} ercircle 发表于 2026-1-20 11:53
手册没见有特色配置,代码发来看看,忘了开辟EEPROM?
或者用AiCube重新生成个试下
大佬,并不是EEPROM问题,最终没有解决,之前好好的,现在是放在循环里能打印,然而初始化上面那个 打印不了? 手册没见有特色配置,代码发来看看,忘了开辟EEPROM?
或者用AiCube重新生成个试下
不是很牛逼 发表于 2026-1-21 08:28
大佬,并不是EEPROM问题,最终没有解决,之前好好的,现在是放在循环里能打印,然而初始化上面 ...
不是没打印,上电第一句没来的及打开串口收?用示波器观察是否有发出? ercircle 发表于 2026-1-21 09:06
不是没打印,上电第一句没来的及打开串口收?用示波器观察是否有发出? ...
没有波形,并不是没有来得急接收吧?我加了延时和循环次数都没有用? 反正是放在主循环里就可以?,一但主循环放了其他功能函数又不行了,头大? 还会是什么问题?供电太抖动??不应该啊?
未复现,并且你的波特率计数不对?
//#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]