学习到iic那节,例程是在LCD上显示的,我想在串口上显示,用printf函数打印出来,但是打印出的都是数字,不是字符,肿么办

2019-08-14 03:22发布

学习到iic那节,例程是在LCD上显示的,我想在串口上显示,用printf函数打印出来,但是打印出的都是数字,不是字符,肿么办,求大神指点一二

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
32条回答
余一水
1楼-- · 2019-08-14 20:03
q247341184 发表于 2017-9-4 19:46
我没记错的话,%d好像是代表整型变量的意思。所以你%d肯定是不可能输出字符的。

恩恩,我也意识到了,后来试了别的都不行,估计用printf怕是不行了,不知道该用什么函数才能将存在eeprom的字符输出到串口也显示是字符 就像LCD屏幕显示一样。。谢谢你的回答。
q247341184
2楼-- · 2019-08-15 00:32
余一水 发表于 2017-9-4 19:56
恩恩,我也意识到了,后来试了别的都不行,估计用printf怕是不行了,不知道该用什么函数才能将存在eeprom ...

我是跳着学习的,我印象中eeprom在stm32有个用flash模拟的,不知道你的是不是,如果是的话,你想显示你的字符大概有几种方式,第一种就是定义字符型变量然后printf输出。如果你写入flash地址里面你就得读出来再输出或者直接输出地址所代表的值。
钩月黄昏
3楼-- · 2019-08-15 05:33
定义一个这个宏

#define DEBUG_OUTPUT    USART1_SendBuf

#define DEBUG_PRINTF(format,args...)  {
                      char temp[100];uint16_t len;
                      len = snprintf((char*)temp,sizeof(temp),(const char*)format,##args);
                      DEBUG_OUTPUT((uint8_t*)temp,len);
                     }

使用的时候就这么用就可以啦
DEBUG_PRINTF("the value is %d ¼óéÏ %d μèóú %d ",time,testvalue,time+testvalue);
z0011k
4楼-- · 2019-08-15 11:02
 精彩回答 2  元偷偷看……
huanghan
5楼-- · 2019-08-15 15:44
本帖最后由 huanghan 于 2017-9-4 20:37 编辑

printf("%s ",datatemp);打印函数%d改为%s就是打印字符串了
余一水
6楼-- · 2019-08-15 19:09
huanghan 发表于 2017-9-4 20:08
printf("%s ",datatemp);打印函数%d改为%s就是打印字符串了

乱码了,理论和实际不符合了

一周热门 更多>