vb2002 发表于 2024-8-7 14:51:56

同样的代码,printf打印出来结果不一样(已解决)

本帖最后由 vb2002 于 2024-8-7 23:28 编辑


已解决,我把定时器改成1T好像就好了.不会乱打印了



stc8g1k08a sop8波特率 9600
stc8h1k08 ssop20 波特率105200
stc8h1k17 sop16 设置了4keeprom
printf打印的出来,前两个没问题,正确输出,
stc8h1k17 打印出来是空格,而且上电就打印 27行。各种波特率都试了。

只要用printf就出这个, 不用就没事.
换stc8g1k08a就没事,可以打印正确的数值




DebugLab 发表于 2024-8-7 15:15:35

不应该,检查是否和EEPROM有关

vb2002 发表于 2024-8-7 18:37:28

wnagming 发表于 2024-8-7 14:54
试试用串口单独发数据

更正一下,,stc8g1k08A正常printf
stc8h1k08和stc8h1k17 不一样
那就可能是 stc8g和stc8h 里面可能有代码不兼容

vb2002 发表于 2024-8-7 18:37:56

DebugLab 发表于 2024-8-7 15:15
不应该,检查是否和EEPROM有关

更正一下,,stc8g1k08A正常printf
stc8h1k08和stc8h1k17 不一样
可能是stc8g和stc8h 在eeprom里面有点不一样

vb2002 发表于 2024-8-7 18:54:18

wnagming 发表于 2024-8-7 14:54
试试用串口单独发数据

单独串口发数据也不行,空格,不过没有那27行空格.

soma 发表于 2024-8-7 19:12:13

估计波特率计算出错了吧

vb2002 发表于 2024-8-7 20:19:39

soma 发表于 2024-8-7 19:12
估计波特率计算出错了吧

我又试了,波特率如果错的话,就一行错的.
但是我这个上电就20多个空白行.
程序单独运行没问题.
就是printf就有问题.
迷糊了.

vb2002 发表于 2024-8-7 22:13:52

wnagming 发表于 2024-8-7 21:39
你单独发都不行,肯定是串口没有设置好呀

但是代码我一点都不改,用在stc8g1k08a上面就正常.
要么就是stc8g和stc8h设置不同.
我好好对比下

嵌入式之路 发表于 2024-8-7 22:43:04

是不是波特率和系统时钟的原因了

vb2002 发表于 2024-8-7 23:26:51

嵌入式之路 发表于 2024-8-7 22:43
是不是波特率和系统时钟的原因了

好像可以了.
我把定时器12T换成1T就好了
页: [1]
查看完整版本: 同样的代码,printf打印出来结果不一样(已解决)