OpenEdv-开源电子网

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

在F1的串口3中我希望在串口中断中先一步处理接收到的数据,却总是提示false

[复制链接]

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2018-4-8
在线时间
26 小时
发表于 2020-7-21 11:44:23 | 显示全部楼层 |阅读模式
5金钱
如图所示,在串口3.c界面一直在左边有提示Comparison of constant 256 with expression of type 'char' is always flase。
虽然编译没有错误提示,但是看起来实在碍眼,请教大家怎么处理,我在主函数里面尝试调用if(Usart3_RxBuff[1] == 0xC2),只要是这种比较运算,都提示这样,很烦,网上也没有相关的答案,请指点。
QQ截图20200721114103.jpg

最佳答案

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

char的范围是-127 到 127。而0xCC为207,所以编译器提示你这个if条件是永远不成立的。用unsigned char类型解决问题。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

219

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1434
金钱
1434
注册时间
2020-5-12
在线时间
394 小时
发表于 2020-7-21 11:44:24 | 显示全部楼层
char的范围是-127 到 127。而0xCC为207,所以编译器提示你这个if条件是永远不成立的。用unsigned char类型解决问题。
回复

使用道具 举报

2

主题

459

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4498
金钱
4498
注册时间
2018-5-14
在线时间
962 小时
发表于 2020-7-21 12:19:38 | 显示全部楼层
buff改成uint8类型的就没了,或者你把0xBB写成 十进制的负值(补码计算)
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 20:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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