OpenEdv-开源电子网

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

关于串口接收汉字识别的问题

[复制链接]

6

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-10-10
在线时间
0 小时
发表于 2014-10-13 21:40:47 | 显示全部楼层 |阅读模式
5金钱
 我想完成识别接收汉字的程序,大家帮我看看
   void USART1_IRQHandler(void)
{
  uint8_t  ch,ch1[]="亮";
  uint8_t  ch2[]="灭";
  if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{  
     //ch = USART1->DR;
   ch=USART_ReceiveData(USART1);
     if(strcmp(ch,ch1)==0)    //编译器提示这里有错误
   {
    LED1(ON);
    LED2(ON);
    LED3(ON);
      }
   else if(strcmp(ch,ch2)==0)  //编译器提示这里有错误
   {
    LED1(OFF);
    LED2(OFF);
    LED3(OFF);
      }
   else
    printf("\nerror\n");   
}
  
}..\..\User\stm32f10x_it.c(157): error:  #167: argument of type "uint8_t" is incompatible with parameter of type "const char *"

最佳答案

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

1,汉字是双字节的内码。 2,USART_ReceiveData一次只能接受1个字节。 所以,你的代码无法实现你的想法。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-13 21:40:48 | 显示全部楼层
1,汉字是双字节的内码。
2,USART_ReceiveData一次只能接受1个字节。

所以,你的代码无法实现你的想法。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13138
金钱
13138
注册时间
2012-11-26
在线时间
3814 小时
发表于 2014-10-13 21:49:27 | 显示全部楼层
类型不对  就算英语差

也不至于差成这样吧

而且  就算类型对了,你这程序也不会达到预期目的
学无止境
回复

使用道具 举报

6

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-10-10
在线时间
0 小时
 楼主| 发表于 2014-10-13 22:27:33 | 显示全部楼层
回复【2楼】jermy_z:
---------------------------------
uint8_t 是typedef 声明过的  是unsigned char 类型
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2014-10-13 22:55:20 | 显示全部楼层
strcmp(const char *s1,const char * s2),strcmp 的参数为const char*类型的,而你传递的是uint8_t类型的,也就是unsigned char。明显的数据类型不对嘛!
开往春天的手扶拖拉机
回复

使用道具 举报

19

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2014-8-20
在线时间
0 小时
发表于 2014-10-13 22:59:36 | 显示全部楼层
没做过,但是如楼上所说,数据类型明显不对。
给你个思路,比对亮和灭的ascii码。
回复

使用道具 举报

60

主题

225

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
483
金钱
483
注册时间
2013-7-27
在线时间
4 小时
发表于 2014-10-13 23:21:45 | 显示全部楼层
ch必须为字符串或字符指针。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-30 11:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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