mtiaopi 发表于 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);
                }
        }


xxxevery 发表于 2024-4-5 14:51:43

这个你要看atoi()函数原型是怎么写的,c语言是比较严格的,函数参数类型不是随便修改的

mtiaopi 发表于 2024-4-5 16:15:30

xxxevery 发表于 2024-4-5 14:51
这个你要看atoi()函数原型是怎么写的,c语言是比较严格的,函数参数类型不是随便修改的 ...

没懂,atoi是把字符转成整形,括号里的是串口发送的字符

mtiaopi 发表于 2024-4-5 16:44:53

搞定了,百度查了下用atol函数是转换成长整形的,然后打印%ld就好了
页: [1]
查看完整版本: 怎么改这个数据为长整形