你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

为什么她一直都在?从未改变!

[复制链接]
fushao 提问时间:2018-7-5 10:05 /
阅读主题, 点击返回1楼
收藏 1 评论19 发布时间:2018-7-5 10:05
19个回答
jjbboox 回答时间:2018-7-5 13:23:54
fushao 发表于 2018-7-5 11:28
HAL_GetTick()内部就是一个32位的uwTick,每隔1个tick ++一次,
如果tick设置为1ms,wuTick 49天会溢出。 ...

没有问题的。
你自己试一下吧。

0x00000000 - 0xffffffff = 1

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

潇潇雨歇pku 回答时间:2018-7-5 14:13:21
以前没想过这个问题,乍一看也认为溢出会有问题。
经楼上两位点拨,发现自己还是脑回路太短,太容易被带偏了。
潇潇雨歇pku 回答时间:2018-7-5 14:35:19
记录一下:
有人认为,HAL_Delay每隔49天左右就会出问题(我一开始也这么以为),原因是uint32每49天会溢出一次,这种观点是错误的。因为即便溢出了,两个unsigned数相减的结果也不会出错,正如11#所言:0x00000000 - 0xffffffff = 1。
HAL_Delay在延时超过49天时才会出错,但没有人会这么干,所以这个函数基本可以认为是没问题的。

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

我是熊猫大仙 回答时间:2018-7-5 14:44:21
我记得曾经也看过有人讨论过这个问题
其实不止是这里,有一些库也用过类似的无符号数相减的特性来优化计算的

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

select326 回答时间:2018-7-5 16:05:11
我是熊猫大仙 发表于 2018-7-5 14:44
我记得曾经也看过有人讨论过这个问题
其实不止是这里,有一些库也用过类似的无符号数相减的特性来优化计算 ...

无符号数相减是个什么结果 ??可以利用这个来做什么优化?
我是熊猫大仙 回答时间:2018-7-5 16:41:55
select326 发表于 2018-7-5 16:05
无符号数相减是个什么结果 ??可以利用这个来做什么优化?

跟HAL_Delay这样类似的,不需要去判断溢出,直接相减
例子就看jjbboox举的就是

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

select326 回答时间:2018-7-6 14:24:17
我是熊猫大仙 发表于 2018-7-5 16:41
跟HAL_Delay这样类似的,不需要去判断溢出,直接相减
例子就看jjbboox举的就是 ...

unsigned char a,b,c;
a = 0x00000000;
b = 0xffffffff;
c = a - b;
printf("c=%d\n",c);

以上代码是在X64机器上编译:
gcc b.c -o bb
b.c: 在函数‘main’中:
b.c:7: 警告:大整数隐式截断为无符号类型

这个警告的意义是什么?
我是熊猫大仙 回答时间:2018-7-6 14:34:56
select326 发表于 2018-7-6 14:24
unsigned char a,b,c;
a = 0x00000000;
b = 0xffffffff;

给unsigned char赋值0xffffffff,这个警告很明显呀。。。。
select326 回答时间:2018-7-6 14:49:29
我是熊猫大仙 发表于 2018-7-6 14:34
给unsigned char赋值0xffffffff,这个警告很明显呀。。。。

我明白子了,unsigned char  最大是0xff ,
jjbboox 回答时间:2018-7-27 14:04:53
这种代码都是大神们写的,尽管不能说大神们就不会犯错,但是这么久经考验的代码一般都是值得信赖的。
如果想不通,可以先自己验证一把,然后就能学到很多。
12

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版