找回密码
 立即注册
查看: 80|回复: 3

怎么改这个数据为长整形

[复制链接]
  • TA的每日心情
    开心
    昨天 20:44
  • 签到天数: 88 天

    [LV.6]常住居民II

    12

    主题

    42

    回帖

    284

    积分

    中级会员

    积分
    284
    发表于 2024-4-5 09:04:26 | 显示全部楼层 |阅读模式
    看视频上的,pwm=atoi(UsbOutBuffer);没有示波器,看小灯我把频率调成了1Hz,数据太大了,这个是转成整形的,超过32767就会出错,会返回一个负数



            while(1)
            {
                    PWMA1_Set(pwm);
                    delay_ms(2);
                    if(DeviceState !=DEVSTATE_CONFIGURED)
                            continue;
                    if(bUsbOutReady)
                    {
                            pwm=atoi(UsbOutBuffer);
                            printf("PWM比较值:%d\r\n",pwm);
                            usb_OUT_done();
                            memset(UsbOutBuffer,0,OutNumber);
                    }
            }


    回复 送花

    使用道具 举报

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

    [LV.5]常住居民I

    0

    主题

    182

    回帖

    358

    积分

    中级会员

    积分
    358
    发表于 2024-4-5 14:51:43 | 显示全部楼层
    这个你要看atoi()函数原型是怎么写的,c语言是比较严格的,函数参数类型不是随便修改的
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 20:44
  • 签到天数: 88 天

    [LV.6]常住居民II

    12

    主题

    42

    回帖

    284

    积分

    中级会员

    积分
    284
     楼主| 发表于 2024-4-5 16:15:30 | 显示全部楼层
    xxxevery 发表于 2024-4-5 14:51
    这个你要看atoi()函数原型是怎么写的,c语言是比较严格的,函数参数类型不是随便修改的 ...

    没懂,atoi是把字符转成整形,括号里的是串口发送的字符
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 20:44
  • 签到天数: 88 天

    [LV.6]常住居民II

    12

    主题

    42

    回帖

    284

    积分

    中级会员

    积分
    284
     楼主| 发表于 2024-4-5 16:44:53 | 显示全部楼层
    搞定了,百度查了下用atol函数是转换成长整形的,然后打印%ld就好了
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-3 04:20 , Processed in 0.054407 second(s), 40 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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