OpenEdv-开源电子网

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

TPAD程序的一个小问题请教

[复制链接]

2

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
168
金钱
168
注册时间
2019-4-12
在线时间
28 小时
发表于 2019-9-5 13:41:55 | 显示全部楼层 |阅读模式
编译实验11 电容触摸按键实验时tpad.c的子程序中发现有一个小三角感叹号!,如图
然后鼠标移到这个倒三角感叹号的时候发现如下字样:
Warning: Comparison of constant 2147483647 with expression of type 'vu16' (aka 'volatile unsigned short') is always false
请问各位大神这是为啥?因为程序编译没报错,功能也正常实现
报错说明是常量和vu16去比较报错。

三角感叹号.PNG
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14286
金钱
14286
注册时间
2018-8-3
在线时间
1147 小时
发表于 2019-9-5 14:59:15 | 显示全部楼层
另外一个是什么类型的 这种强转一下类型就行了吧  转成一样的类型
回复 支持 反对

使用道具 举报

2

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
168
金钱
168
注册时间
2019-4-12
在线时间
28 小时
 楼主| 发表于 2019-9-5 16:02:46 | 显示全部楼层
翼行园子 发表于 2019-9-5 14:59
另外一个是什么类型的 这种强转一下类型就行了吧  转成一样的类型

tpad_default_val        vu16  typedef __IO uint16_t vu16;
TPAD_ARR_MAX_VAL    #define TPAD_ARR_MAX_VAL 0xFFFFFFFF //最大的ARR值(TIM2是32位定时器)
程序源码是这么dinginess的,一个是unsigned int另外一个是直接定义的FFFFFFFF
回复 支持 反对

使用道具 举报

9

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
479
金钱
479
注册时间
2019-12-6
在线时间
149 小时
发表于 2023-9-7 14:37:31 | 显示全部楼层
qzf1603 发表于 2019-9-5 16:02
tpad_default_val        vu16  typedef __IO uint16_t vu16;
TPAD_ARR_MAX_VAL    #define TPAD_ARR_MA ...

tpad_default_val定义为16位的,而TPAD_ARR_MAX_VAL是32位的,你拿一个16位的数和32位的相比较,编译器会报警告,它希望你拿位数一样的数来比较,这样处理就没事了,强制转换 if (g_tpad_default_val > (uint16_t)TPAD_ARR_MAX_VAL / 2)
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 12:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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