OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 278|回复: 11

请大家指点指点,弄了一天了

[复制链接]

  离线 

10

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
103
注册时间
2016-2-13
在线时间
13 小时
发表于 2017-12-7 19:03:48 | 显示全部楼层 |阅读模式
3金钱
  思路设计:         如果发送”开灯“字符,LED灯就亮,发送”响起“字符时,LED灯灭蜂鸣器响!
     否则,LED灯与蜂鸣器处于原始状态!

最佳答案

查看完整内容[请看2#楼]

嗯其实你可以这样,使用中文指令判断起来对于你来说有点儿复杂,你可以从最简单的做起。给个例子: 1、发0x00灯亮,发0x01灯灭 2、发'a'灯亮,发'b'灯灭 3、发"on"灯亮,发"off"灯灭 最后,才是你所想要的接收中文指令。 给自己挑战是非常好的,但是解决的过程要循序渐进。如果一开始目标设计的太高,你遇到的将一直都是失败失败失败和失败,没有自信心和成就感的支撑,很快你就没有学下去的动力,甚至会反感它了。
回复

使用道具 举报

  离线 

2

主题

237

帖子

0

精华

高级会员

Rank: 4

积分
627
金钱
627
注册时间
2017-10-24
在线时间
34 小时
发表于 2017-12-7 19:03:49 | 显示全部楼层
小茶叶 发表于 2017-12-7 19:21
想给自己一些挑战性

嗯其实你可以这样,使用中文指令判断起来对于你来说有点儿复杂,你可以从最简单的做起。给个例子:
1、发0x00灯亮,发0x01灯灭
2、发'a'灯亮,发'b'灯灭
3、发"on"灯亮,发"off"灯灭
最后,才是你所想要的接收中文指令。

给自己挑战是非常好的,但是解决的过程要循序渐进。如果一开始目标设计的太高,你遇到的将一直都是失败失败失败和失败,没有自信心和成就感的支撑,很快你就没有学下去的动力,甚至会反感它了。
十六进制带我飞。
回复

使用道具 举报

  离线 

10

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
103
注册时间
2016-2-13
在线时间
13 小时
 楼主| 发表于 2017-12-7 19:06:11 | 显示全部楼层
看看那里错了
QQ截图20171207185111.png
QQ截图20171207185154.png
回复

使用道具 举报

  离线 

2

主题

237

帖子

0

精华

高级会员

Rank: 4

积分
627
金钱
627
注册时间
2017-10-24
在线时间
34 小时
发表于 2017-12-7 19:16:54 | 显示全部楼层
你的if判断语句不正确。

if语句中条件不为0恒为真,else判断也不对。

楼主有点儿还不会跑就想飞的味道。。。建议先好好复习下C语言中if语句的用法。

另,想实现这个功能,需要将接收到的字节与给定的“开灯”等命令逐【字节】比较,由于是中文,会比较复杂,应当将中文指令以字符串的形式存储,然后对于接收到的信息逐字节比较,才能达到想要实现的效果。
十六进制带我飞。
回复

使用道具 举报

  离线 

10

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
103
注册时间
2016-2-13
在线时间
13 小时
 楼主| 发表于 2017-12-7 19:21:58 | 显示全部楼层
DreamWaterPro 发表于 2017-12-7 19:16
你的if判断语句不正确。

if语句中条件不为0恒为真,else判断也不对。

想给自己一些挑战性
回复

使用道具 举报

  离线 

0

主题

2

帖子

0

精华

新手上路

Rank: 1

积分
14
金钱
14
注册时间
2017-12-7
在线时间
0 小时
发表于 7 天前 | 显示全部楼层
二楼正解
回复

使用道具 举报

  离线 

5

主题

204

帖子

0

精华

高级会员

Rank: 4

积分
875
金钱
875
注册时间
2016-7-20
在线时间
94 小时
发表于 7 天前 | 显示全部楼层
三楼正解
回复

使用道具 举报

  离线 

2

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2014-1-28
在线时间
17 小时
发表于 7 天前 | 显示全部楼层
思路很好,手法不对!C++
回复

使用道具 举报

  离线 

10

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
103
注册时间
2016-2-13
在线时间
13 小时
 楼主| 发表于 7 天前 | 显示全部楼层
jiki119 发表于 2017-12-8 10:05
思路很好,手法不对!C++

C++?请指点一二
回复

使用道具 举报

  离线 

10

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
103
注册时间
2016-2-13
在线时间
13 小时
 楼主| 发表于 7 天前 | 显示全部楼层
DreamWaterPro 发表于 2017-12-7 19:16
你的if判断语句不正确。

if语句中条件不为0恒为真,else判断也不对。

感谢大神指点,
回复

使用道具 举报

  离线 

2

主题

237

帖子

0

精华

高级会员

Rank: 4

积分
627
金钱
627
注册时间
2017-10-24
在线时间
34 小时
发表于 7 天前 | 显示全部楼层

8楼所说的C++,是这样的,在电脑上编写C++程序的时候,C++语言中的string库提供了字符串比较的功能,在C++中,你可以有如下的使用方法:
[C++] 纯文本查看 复制代码
...

String s1="字符串1";
String s2="字符串2";

if(s1==s2)
{
    cout<<"两个字符串相等"<<endl;
}
else
{
    cout<<"两个字符串不相等"<<endl;
}

...



虽然C语言中也可以类似地定义两个字符串数组,但是如果直接写s1或s2,是代表着这两个字符串的首地址,事实上这两个字符串肯定是存储在不同的位置,首地址肯定不一样,因此一定会得出两个字符串不想等的结论了;而在C++中,String类重载了==运算符,这使得对字符串的直接比较变为可能。等楼主有了一定的知识积累,可以去了解了解,但是应当说用C++写单片机程序的不多。

另,楼主在C语言中也可以使用string.h中的strcmp()函数来实现两个字符串的比较。
十六进制带我飞。
回复

使用道具 举报

  离线 

10

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
103
注册时间
2016-2-13
在线时间
13 小时
 楼主| 发表于 4 天前 | 显示全部楼层
DreamWaterPro 发表于 2017-12-8 22:28
8楼所说的C++,是这样的,在电脑上编写C++程序的时候,C++语言中的string库提供了字符串比较的功能,在C++ ...

虽然不怎么懂,但是谢谢大神们的指点
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2017-12-15 20:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */