打印
[STM8]

快哭了,大伙儿帮我看看我这个问题

[复制链接]
3644|39
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
niyade|  楼主 | 2017-12-11 22:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 niyade 于 2017-12-12 19:40 编辑

我的代码很简单,就是STM8s003K3+LCD1602+DHT11,我的问题也很奇怪,已经找了一个星期就是不知道什么原因。
如下图为我的主函数内容
我就,在while之前加个write_com和write_dat显示个字符就不行,温度就变成了个常数。我的代码量很小,应该不是堆栈溢出的问题。我将整个工程也上传吧,见23楼

QQ截图20171211215852.png (19.43 KB )

只要加上操作LCD的一个语句,读出的温度就是个常数,而且温度比较大,不变。 ... ...

只要加上操作LCD的一个语句,读出的温度就是个常数,而且温度比较大,不变。 ... ...
沙发
niyade|  楼主 | 2017-12-11 22:03 | 只看该作者
文件夹下的Project_template即为工程代码

使用特权

评论回复
板凳
niyade|  楼主 | 2017-12-11 22:04 | 只看该作者
能不能看到我上传的工程?

使用特权

评论回复
地板
zhaoyu2005| | 2017-12-12 09:00 | 只看该作者
没有上传工程

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
niyade + 3
5
niyade|  楼主 | 2017-12-12 09:37 | 只看该作者
我点了右上方的附件按钮为啥上传不了

使用特权

评论回复
6
niyade|  楼主 | 2017-12-12 09:39 | 只看该作者
主函数就那么多,很奇怪的问题,加两个操作LCD的语句,温度就读不出来!检查了硬件,也没哪里短路!

使用特权

评论回复
7
sopc12| | 2017-12-12 10:17 | 只看该作者
1.问题描述不是很清楚;
2.光看图片这几句也没法帮你找问题;

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
niyade + 3
8
kingkits| | 2017-12-12 10:24 | 只看该作者
写入的COM = 06 不知道是什么功能

使用特权

评论回复
9
niyade|  楼主 | 2017-12-12 10:29 | 只看该作者
kingkits 发表于 2017-12-12 10:24
写入的COM = 06 不知道是什么功能

就是写屏幕的指针,在哪里显示

使用特权

评论回复
10
niyade|  楼主 | 2017-12-12 10:30 | 只看该作者
晚上看看把工程怎么上传

使用特权

评论回复
11
kingkits| | 2017-12-12 10:31 | 只看该作者
估计你的2-3-5位置写的是个数字,4 是个小数点,你想在6的位置添加个符号,
首先要确定你有没有6这个位置,另外要确定你有没有支持显示0xbf这个字符,正常情况下,如果你的显示液晶支持汉字,0xBF是个汉字的一部分(每个汉字有2个字节),所以还需要输入一个字节的数据。

使用特权

评论回复
12
kingkits| | 2017-12-12 10:31 | 只看该作者
是0xdf

使用特权

评论回复
13
niyade|  楼主 | 2017-12-12 11:07 | 只看该作者

不是显示的问题,调试就发现这个读取温度的变量一直是个初始值。读不到,但是去掉这个就读出来了

使用特权

评论回复
14
kingkits| | 2017-12-12 13:07 | 只看该作者
你把这个语句与上面的语句合并起来,使用LCDShowStr() 这个函数操作,看看效果如何

使用特权

评论回复
15
sky.sun.zz| | 2017-12-12 13:26 | 只看该作者
本帖最后由 sky.sun.zz 于 2017-12-12 13:28 编辑

你那个Write_Dat(0xdf)应该化成2位ASCII+0X30才是,其余非字符类的数值显示相同处理。

使用特权

评论回复
16
niyade|  楼主 | 2017-12-12 13:36 | 只看该作者
kingkits 发表于 2017-12-12 13:07
你把这个语句与上面的语句合并起来,使用LCDShowStr() 这个函数操作,看看效果如何 ...

这个是显示特殊字符℃左上角那个圆圈,数据手册上这个字符对应这个十六进制

使用特权

评论回复
17
niyade|  楼主 | 2017-12-12 13:37 | 只看该作者
sky.sun.zz 发表于 2017-12-12 13:26
你那个Write_Dat(0xdf)应该化成2位ASCII+0X30才是,其余非字符类的数值显示相同处理。 ...

这个是显示特殊字符℃左上角那个圆圈,1602数据手册上这个字符对应这个十六进制。回去再仔细看看

使用特权

评论回复
18
sky.sun.zz| | 2017-12-12 15:35 | 只看该作者
niyade 发表于 2017-12-12 13:37
这个是显示特殊字符℃左上角那个圆圈,1602数据手册上这个字符对应这个十六进制。回去再仔细看看 ...

你的函数Write_Dat()貌似只显示“  ”内字符而非直接HEX值

使用特权

评论回复
19
数码小叶| | 2017-12-12 16:03 | 只看该作者
首先这个0xdf肯定有问题,℃可以占两位显示,ascii码里组合。不过这个问题按理说不会影响结果啊,while里应该会覆盖啊。。。

使用特权

评论回复
20
niyade|  楼主 | 2017-12-12 17:21 | 只看该作者
数码小叶 发表于 2017-12-12 16:03
首先这个0xdf肯定有问题,℃可以占两位显示,ascii码里组合。不过这个问题按理说不会影响结果啊,while里应 ...

摄氏度就是两个字符的,我这个就是显示一个'。',这个也显示正常了,只是为啥影响读取温度我是在不理解.......反正就是温度读不出来,一直是个初始化值....

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

172

帖子

2

粉丝