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

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

[复制链接]
  • TA的每日心情
    开心
    2024-3-31 12:12
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    1

    主题

    2

    回帖

    31

    积分

    新手上路

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

    使用道具 举报

  • TA的每日心情
    开心
    14 小时前
  • 签到天数: 152 天

    [LV.7]常住居民III

    17

    主题

    370

    回帖

    1281

    积分

    荣誉版主

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

    使用道具 举报

  • TA的每日心情
    开心
    14 小时前
  • 签到天数: 152 天

    [LV.7]常住居民III

    17

    主题

    370

    回帖

    1281

    积分

    荣誉版主

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

    使用道具 举报

  • TA的每日心情
    开心
    14 小时前
  • 签到天数: 152 天

    [LV.7]常住居民III

    17

    主题

    370

    回帖

    1281

    积分

    荣誉版主

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

    使用道具 举报

  • TA的每日心情
    开心
    14 小时前
  • 签到天数: 152 天

    [LV.7]常住居民III

    17

    主题

    370

    回帖

    1281

    积分

    荣誉版主

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


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

    点评

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-1-17 14:27
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    3

    主题

    17

    回帖

    265

    积分

    中级会员

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

    使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 51 天

    [LV.5]常住居民I

    4

    主题

    129

    回帖

    261

    积分

    中级会员

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

    使用道具 举报

  • TA的每日心情
    慵懒
    14 小时前
  • 签到天数: 151 天

    [LV.7]常住居民III

    25

    主题

    695

    回帖

    1725

    积分

    金牌会员

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

    使用道具 举报

    该用户从未签到

    61

    主题

    622

    回帖

    1万

    积分

    荣誉版主

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

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

    使用道具 举报

  • TA的每日心情
    奋斗
    20 小时前
  • 签到天数: 62 天

    [LV.6]常住居民II

    11

    主题

    357

    回帖

    1043

    积分

    金牌会员

    积分
    1043
    发表于 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, 2024-4-27 20:39 , Processed in 0.071821 second(s), 69 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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