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

怎么改这个数据为长整形

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:421
  • 最近打卡:2025-05-03 12:14:59

14

主题

54

回帖

1344

积分

金牌会员

积分
1344
发表于 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);
                }
        }


回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-02 23:40:52

0

主题

336

回帖

1494

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:421
  • 最近打卡:2025-05-03 12:14:59

14

主题

54

回帖

1344

积分

金牌会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:421
  • 最近打卡:2025-05-03 12:14:59

14

主题

54

回帖

1344

积分

金牌会员

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-3 22:13 , Processed in 0.109602 second(s), 67 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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