为什么当输出PWM的时候同一组的IO口方向引脚未能输出????
void pwm_duty(PWMCH_enum pwmch, uint32 duty);这个函数是逐飞编写的输出PWM占空比的函数,检查过没有控制到其他的IO口。当PID运算出来的输出为负时,先进入if语句,改变方向电平引脚,再输出PWM,PWM的占空比可以改变。我们通过上位机显示,当PID运算出来的输出为无论正负时,上位机显示方向引脚也发生了改变,但是使用电表实测,却发现没有没有改变输出电平!!!!最糙的是,当我把改变方向的引脚拿出if语句后,输出恒定PWM, 串口发送方向引脚如图4所示时,居然又能可以改变输出电平???难道是频率太快??导致方向引脚未能输出??
将控制P26、P27的语句放在主循环试试
怀疑是有其他地方操作了这两个引脚
如果还不行,请上传完成可编译工程 王昱顺 发表于 2025-5-26 18:38
将控制P26、P27的语句放在主循环试试
怀疑是有其他地方操作了这两个引脚
如果还不行,请上传完成可编译工程 ...
代码完全没动,main函数里面该屏蔽以全屏蔽了,OLED都显示P26=0 ,为什么还是高电平呢??????
XInkkQwq 发表于 2025-5-26 19:38
代码完全没动,main函数里面该屏蔽以全屏蔽了,OLED都显示P26=0 ,为什么还是高电平呢??????
...
经测试,P26输出没有问题,应该是前面的test_output没有变化符号
这里强制更改test_output的值,给1000和-1000,测试P26端口可以正常输出
以下是测试程序:
找到原因了,并未是芯片的问题,画板的同学将方向弄反了,已经被狠狠拷打了{:4_167:}
页:
[1]