OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 13251|回复: 21

关于数组以00结尾的问题 求助。。。。。。

[复制链接]

4

主题

12

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-16
在线时间
0 小时
发表于 2013-8-28 08:54:05 | 显示全部楼层 |阅读模式
每次用串口给单片机发一个十六进制的数组  要是以00结尾  就不能用  不知道是为什么?请教。  
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-8-28 09:16:25 | 显示全部楼层
能用, 不要以字符串形式就行了。 
只有字符串是以0x00为结尾标志的, 其他你可以自定义结束标志,也可以指定数据大小,还可以用超时检测结束
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-16
在线时间
0 小时
 楼主| 发表于 2013-8-28 11:43:18 | 显示全部楼层
回复【2楼】aleda303:
---------------------------------
能给我个简单的例子  让我看一下行么  这个问题困扰我好久了  3q
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-16
在线时间
0 小时
 楼主| 发表于 2013-8-28 11:55:16 | 显示全部楼层
回复【2楼】aleda303:
---------------------------------
假设我想给串口发一组数据 01 00控制灯亮 01 01控制led灭  串口数据通过中断存在数组RX1[]里。我判断一下数组里是否有 01 00 如果有led亮 ,如果有01 01 led灭。
eg:if((RX1[0]==0x01)&&(RX1[1])==0x00)
    {
     LED0=0;  //LED亮
   }
else if((RX1[0]==0x01)&&(RX1[1])==0x01) 
 {
    LED0=1;   //LED灭
 }
这样为什么 不可以?  但是将00改成02等等  不是00结尾的就能用 ,这是临时写的小程序,希望你明白 谢谢你 帮我看一下  在线等
回复 支持 反对

使用道具 举报

10

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1502
金钱
1502
注册时间
2013-8-28
在线时间
28 小时
发表于 2013-8-28 11:56:48 | 显示全部楼层
回复【4楼】mpj658321:
---------------------------------
同问
STM32软硬件相关项目外包开发 QQ:83029775
回复 支持 反对

使用道具 举报

10

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1502
金钱
1502
注册时间
2013-8-28
在线时间
28 小时
发表于 2013-8-28 11:57:09 | 显示全部楼层
回复 支持 反对

使用道具 举报

10

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1502
金钱
1502
注册时间
2013-8-28
在线时间
28 小时
发表于 2013-8-28 11:58:58 | 显示全部楼层
顶 没人能解决吗
STM32软硬件相关项目外包开发 QQ:83029775
回复 支持 反对

使用道具 举报

10

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1502
金钱
1502
注册时间
2013-8-28
在线时间
28 小时
发表于 2013-8-28 12:00:58 | 显示全部楼层
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-8-28 12:06:31 | 显示全部楼层
回复【4楼】mpj658321:
---------------------------------
可以啊, 估计是你接受处理的不对
你发下 接受部分的程序
回复 支持 反对

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1815
金钱
1815
注册时间
2011-10-9
在线时间
230 小时
发表于 2013-8-28 12:32:43 | 显示全部楼层
if( (RX1[0]==0x01) && (RX1[1]==0x00 ) )
    {
     LED0=0;  //LED亮
   } 
else if( (RX1[0]==0x01) && (RX1[1]==0x01)) 
 {
    LED0=1;   //LED灭
 }


试试这个

如果再不行 

//把接收的数 发到串口  看看 收对了没有 send_232(是我自己的串口发送函数 你用你自己的)
send_232(RX1[0]);
send_232(RX1[1]);  



if( (RX1[0]==0x01) && (RX1[1]==0x00 ) )
    {
     LED0=0;  //LED亮
   } 
else if( (RX1[0]==0x01) && (RX1[1]==0x01)) 
 {
    LED0=1;   //LED灭
 }



ps 对于串口 不管你什么数  他都会一般对待 。除非你程序对他进行特殊处理 所以只要你确定能收到 01 00 判断逻辑有正确的话绝对能通过的
不能用  只能2个原因 1是你接收数据错误  2是 处理逻辑错误






回复 支持 反对

使用道具 举报

10

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1502
金钱
1502
注册时间
2013-8-28
在线时间
28 小时
发表于 2013-8-28 13:11:11 | 显示全部楼层
回复 支持 反对

使用道具 举报

10

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1502
金钱
1502
注册时间
2013-8-28
在线时间
28 小时
发表于 2013-8-28 13:33:44 | 显示全部楼层
回复 支持 反对

使用道具 举报

10

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1502
金钱
1502
注册时间
2013-8-28
在线时间
28 小时
发表于 2013-8-28 13:40:50 | 显示全部楼层
回复 支持 反对

使用道具 举报

10

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1502
金钱
1502
注册时间
2013-8-28
在线时间
28 小时
发表于 2013-8-28 13:51:12 | 显示全部楼层
回复 支持 反对

使用道具 举报

10

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1502
金钱
1502
注册时间
2013-8-28
在线时间
28 小时
发表于 2013-8-28 14:20:35 | 显示全部楼层
回复 支持 反对

使用道具 举报

10

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1502
金钱
1502
注册时间
2013-8-28
在线时间
28 小时
发表于 2013-8-28 14:24:12 | 显示全部楼层
没人回答啊
回复 支持 反对

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1815
金钱
1815
注册时间
2011-10-9
在线时间
230 小时
发表于 2013-8-28 14:49:39 | 显示全部楼层
送佛送到西  写了段程序测试了下 控制很正常  呵

请自行修改led引脚







232.zip

118.22 KB, 下载次数: 82

回复 支持 反对

使用道具 举报

10

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1502
金钱
1502
注册时间
2013-8-28
在线时间
28 小时
发表于 2013-8-29 10:13:01 | 显示全部楼层
不能沉
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-16
在线时间
0 小时
 楼主| 发表于 2013-8-29 11:12:30 | 显示全部楼层
回复【17楼】simms01:
---------------------------- 
朋友那个程序你测了么  我测了一下不能用 。其实我的问题是我发01 00他不好使  改成01 02 好使或者改成01 00 02 也好使  就是00结尾 就不好使。为什么
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-16
在线时间
0 小时
 楼主| 发表于 2013-8-29 11:14:22 | 显示全部楼层
回复【17楼】simms01:
---------------------------------
但是很感谢了 我工程 也发在论坛里了  虽然到现在还没解决 你可以看一下。
回复 支持 反对

使用道具 举报

5

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2013-8-16
在线时间
2 小时
发表于 2013-8-29 11:20:30 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1815
金钱
1815
注册时间
2011-10-9
在线时间
230 小时
发表于 2013-8-29 12:33:43 | 显示全部楼层
发上来的程序已经实测 过的   电脑端是 sscom32  mcu是stm32f103zet6 

如果你不能用 

1. 检查电脑端波特率是否正确  9600 n 8 ,1,无 且用hex方式发送
2.检查硬件










回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-14 03:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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