求助。keilc 编程。通过串口接收 4个字符

dabaobear 2007-09-14 11:48:54
//经过测试试验,串口通讯正常。 怎么比较收到的数,想做密码判断。

for(i=0;i<4;i++)
{
while (!RI);
RI = 0;
*str1=SBUF; //接收数据
str1++;

}

if(strcmp(str1,str2)==0)

我想用上面的语句比较 可怎么也不对。

str2是这样定义的,unsigned char *str2=1234;

str1是这样定义的,unsigned char *str1;
...全文
273 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Great_Bug 2007-09-16
  • 打赏
  • 举报
回复
/* str2的定义可以是这样 */
unsigned char *str2= "1234";
/* 或者 */
unsinged char str2[] = {1, 2, 3, 4, 0};

/* str1应样定义 */
unsigned char str1[8];
lbing7 2007-09-14
  • 打赏
  • 举报
回复
第一个问题:strcmp(str1,str2)

STRCMP比较是以'\0'结束,不知道你注意到没?

第二个问题:str1是这样定义的,unsigned char *str1;
这个定义只分配了指针的空间,没有分配内存的空间,你的数据往哪放?

第三个问题:
for(i=0;i<4;i++)
{
while (!RI);
RI = 0;
*str1=SBUF; //接收数据
str1++;

}

把接收的功能赋加到逻辑里面,会让你调试的时候死都不知道哪死,把它独立出来吧..

LZ解决弄懂了这三个问题,那再看看
dabaobear 2007-09-14
  • 打赏
  • 举报
回复
lbing7能不能 多帮帮我啊,我想多问你些问题,有好多都不明白。
lbing7 2007-09-14
  • 打赏
  • 举报
回复
看了LS的回答,我发现在LZ没有真正理解C语言

还要加紧钻研哈,嘿嘿

dabaobear 2007-09-14
  • 打赏
  • 举报
回复
非常感谢,lbing7。我改成用数组存储,比较数组,相当麻烦。勉强通过了。

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧