找回密码
 立即注册
查看: 1669|回复: 18

夭寿啊,STC32G12K128芯片的cos(0)=0

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-01-11 13:04:21

1

主题

2

回帖

45

积分

新手上路

积分
45
发表于 2024-3-28 14:11:20 | 显示全部楼层 |阅读模式
听说STC32G12K128的浮点运算能力很强,最近入手了一块板子,试了下余弦函数,cos(0)居然是一个很接近0的数,这个是在单片机连接电脑开keil的USB仿真看到的,但如果用串口导出数据也是一样的结果,引用的头文件是直接右键插入的,但是开平方都能精准的运算,求大佬帮助
截图202403281406153515.jpg
截图202403281410418111.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:572
  • 最近打卡:2025-07-01 07:57:05

24

主题

524

回帖

1280

积分

荣誉版主

积分
1280
发表于 2024-3-28 14:34:50 | 显示全部楼层
这是KEIL的锅,STC表示---->不背。
STC32F系列才有FPU。
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:572
  • 最近打卡:2025-07-01 07:57:05

24

主题

524

回帖

1280

积分

荣誉版主

积分
1280
发表于 2024-3-28 14:41:50 | 显示全部楼层
这事你得问论坛里的杨老师(杨为民),他对KEIL的C51/C251研究很深。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:572
  • 最近打卡:2025-07-01 07:57:05

24

主题

524

回帖

1280

积分

荣誉版主

积分
1280
发表于 2024-3-28 14:49:39 | 显示全部楼层
另外,KEIL C251不支持double类型,你用float试试。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:572
  • 最近打卡:2025-07-01 07:57:05

24

主题

524

回帖

1280

积分

荣誉版主

积分
1280
发表于 2024-3-28 14:58:44 | 显示全部楼层
在keil c251上测试了下
捕获.PNG


bbb == 1---->正确!

点评

正解。正确使用语法,是得到正确结果的前提。  详情 回复 发表于 2024-3-28 19:19
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-06-30 23:28:31

9

主题

68

回帖

1128

积分

金牌会员

积分
1128
发表于 2024-3-28 15:17:02 | 显示全部楼层
32G没有浮点,32F才有
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:377
  • 最近打卡:2025-07-01 07:55:30

23

主题

296

回帖

1332

积分

金牌会员

积分
1332
发表于 2024-3-28 16:02:11 | 显示全部楼层
长知识了
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:579
  • 最近打卡:2025-07-01 07:56:05
已绑定手机

50

主题

1827

回帖

3212

积分

论坛元老

积分
3212
发表于 2024-3-28 16:30:24 | 显示全部楼层
你这是要做巧妇啊
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:25
  • 最近打卡:2025-06-29 16:04:18

116

主题

1224

回帖

1万

积分

荣誉版主

积分
13039
发表于 2024-3-28 19:19:50 | 显示全部楼层
本帖最后由 杨为民 于 2024-3-28 19:24 编辑
社区*** 发表于 2024-3-28 14:58
在keil c251上测试了下

正解。正确使用语法,是得到正确结果的前提。
如果你定义了变量,Keil会根据变量的类型转换数据类型再调用函数进行计算。
原问题写了个“0”,这是什么数据类型呢?Keil不知道,因此就“猜”了一个,结果自然不一定符合编程者的期望了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:351
  • 最近打卡:2025-06-29 00:53:31
已绑定手机

14

主题

600

回帖

2267

积分

荣誉版主

积分
2267
发表于 2024-3-28 23:41:22 | 显示全部楼层
杨*** 发表于 2024-3-28 19:19
正解。正确使用语法,是得到正确结果的前提。
如果你定义了变量,Keil会根据变量的类型转换数据类型再调用 ...

对,C51有时候就是乱七八糟,记得以前有个项目,做了个移位,1<<xx,这个1之前直接写的,也没有太注意,软件怎么调试都不行,不小心看到了,改成(u8)1<<xx,立马解决问题.
后来也没有具体测试,莫非C51默认1是bit吗?
所以,C写东西确实需要严谨一点.

点评

“莫非C51默认1是bit吗?” 别它的猜默认是什么,直接用强制类型告诉它你的是什么  详情 回复 发表于 2024-3-29 02:31
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-7-1 23:40 , Processed in 0.138731 second(s), 115 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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