1、初次下载程序没有按照程序逻辑执行
是因为下载好程序后,没有自动跑起来。需要打开Options for Target->debug-右上角的settings->Flash Download 进入此界面后勾选Reset and Run对话框即可
2、偏航角的计算
3、mos管击穿导致手柄开不了机?
mos管击穿为短路还是断路,取决于电流大小和集电极电压,一般电流过大炸管后呈现断路状态,电流不足以炸管电压过高击穿呈现短路状态。目前情况为短路,触发保护从而手柄开不了机。
4、为什么只有在抱闸开关抱死的时候通电,抱闸关闭任务才有效?YSDC1_Brake();是什么作用
抱闸物理打开,不可以通过程序抱死;抱闸物理抱死,可以通过程序打开。YSDC1_Brake();是让电机转速为0,避免抱闸抱死出现堵转的问题
5、程序中不能打断点的原因?
因为程序中该部分可能没有执行
6、为什么轮椅轮子不能及时停止,延时很大
可能因为编码器返回的数据存在问题,也可能因为摩擦力不同导致其在PID控制时出现此现象
7、为什么电机输出PWM信号时而按照自己设置的值输出,时而变为某一值
因为在定时器中配置通道时会设置输出脉冲的宽度,时而变为的某一值就是这里设置的。设置脉冲的宽度作用是什么呢?能否去掉呢?
8、原有的程序在新安装的keil5中有问题?
报错为:ArmClang: error: unsupported option '--diag_suppress=186,66'
原因:从MDK5.37开始,AC5(ARMCC)编译器不再默认安装,需要独立安装。路径、字符等安装问题,都可能引起AC5的编译错误。
解决方法:安装之前版本的编译器,【这里是一个地址】
9、定时器的计数方式与区别
通用定时器可以向上计数、向下计数、向上向下双向计数模式
1)向上计数模式计数器从0计数到自动加载值(TIMX ARR),然后重新从0开始计数并且产生一个计数器溢出事件。
2)向下计数模式:计数器从自动装入的值(TIMX ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。
3)中央对齐模式(向上/向下计数):计数器从0开始计数到自动装入的值-1产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件,然后再从0开始重新计数。
(参考链接)
10、TIM1_OCInitStructure.OcPolarity有什么作用?
有高低之分。High时,高电平有效;low时,低电平有效。另外,输出比较模式(TIM1_OCInitStructure.OcMode)可以决定有效电平的前后,模式1先是有效电平再是无效电平,模式二反之。(参考文章)
思考:和计数模式有什么间接或直接的关系呢?
11、 GPIO_InitStructure.GPIO_Speed设置的大小对输出有什么影响?
GPI0 Speed 50MHz是指设置GP10的输出速率为50MHZGP1O即通用输入输出,可以用来控制外部设备,如LED、电机等。在单片机中,GPI0的输出速率可以设置为不同的速率,以适应不同的外部设备。其中,GPIO Speed 50MHZ是比较常见的设置之一表示GPIO的输出速率为50MHZ,即每秒钟可以输出50M个GPIO信号。这种速率通常用在需要高速输出GPI0信号的场合,如PWM控制、高速串口通信等、需要注意的是,GPI0的输出速率越高,对单片机的资源占用也越高,因此在实际应用中需要根据具体情况进行选择。
普通GPIO选2MHz的驱动电路就可以了,SPI外设就必须选50MHz。
12、为什么一个固定的数在.h文件中赋值给变量之后在使用该变量在.c中赋值
13.TIM_BDTRInitStructure.DeadTime = 1;定时器死区时间是什么意思
在控制三相的PWM输出时,每相一般需要两个mos管分别分布在上下桥臂控制输入输出。这两个mos管不能同时导通,否则就会出现短路的情况,从而对系统造成损害。
所以在驱动开关元器件门极的时候需要增加一段延时,确保另一个开关管完全关断之后再去打开这个开关元器件,通常存在两种情况;
上半桥关断后,延迟一段时间再打开下半桥;
下半桥关断后,延迟一段时间再打开上半桥;
这样就不会同时导通,从而避免功率元件烧毁;死区时间控制在通常的单片机所配备的PWM中都有这样的功能。至于死区时间设置多大,需要参考占空比与mos管参数。此处为参考文章
13.实际电流与程序中AD值如何对应
3.3 / 4096 =( 0.002*I*12)/AD
4096是ad的分辨率是12位。0.002*I*12是放大后的采样电压,放大倍数12倍。
14、下载器总是失败的原因?
可能与电源线供电有关
15、接收完一帧数据如何对该数据进行处理?
接收完一帧数据后,在条件语句里存下该一帧数据,然后清空这一帧数据。然后再对存储的一帧数据进行分析:实验里根据某位数据判断某个标志位的值,再根据该标志位来 确定姿态能否调节.
16、max2323之间通讯出现损坏电源电路与通讯芯片的情况?
可能收到了各别没有作用引脚的干扰,或者引线之间的干扰。没有使用的引脚可以接地,以免导致出现电路问题。
17、上位机控制轮椅运动时,角速度在转弯时波动剧烈?
主要原因还是因为判断正反转的问题导致速度出现突变,进而导致pid计算问题,再出现角速度抖动。判断方式一:通过计算的pwm值正负判断正反转。判断方式二:通过计算编码器变化来计算正反转。但都存在一个问题:如何正确的判断电机正反转。另外下地阻力大,比例环节作用过大导致超调从而可能出现抖动,调节适当值可以减弱抖动,但解决不了根本问题。
18、切换到姿态模式急停为什么会出故障?
当切换模式急停时,再切换到手动模式会出现失控的状态。因为摇杆速度给目标速度赋值,同时上位机下发数据解析也会给目标速度赋值,两者同时赋予目标速度,冲突导致单片机处理出现问题。目前针对该问题,只有在自动模式下才对上位机发送的数据进行处理,从而避开两者冲突。
19、自平衡打开,在加速时在平整路面也会自动调整?
初步判断是在加速时电池电压拉低导致推杆AD值降低,从而使推杆自动调整.解决方法:重新判定推杆的基准值