基于STM32F4的四轴航拍飞行器

发布者:Turquoise最新更新时间:2016-09-02 来源: eefocus关键字:STM32F4  四轴航拍  飞行器 手机看文章 扫描二维码
随时随地手机看文章

1.引言

四轴飞行器是一种利用四个旋翼作为飞行引擎来进行空中飞行的飞行器。进入20世纪以来,电子技术飞速发展四轴飞行器开始走向小型化,并融入了人工智能,使其发展趋于无人机,智能机器人。

四轴飞行器不但实现了直升机的垂直升降的飞行性能,同时也在一定程度上降低了飞行器机械结构的设计难度。四轴飞行器的平衡控制系统由各类惯性传感器组成。在制作过程中,对整体机身的中心、对称性以及电机性能要求较低,这也正是制作四轴飞行器的优势所在,而且相较于固定翼飞机,四轴也有着可垂直起降,机动性好,易维护等优点。

在实际应用方面,四轴飞行器可以在复杂、危险的环境下可以完成特定的飞行任务,也可以用于监控交通,环境等。比如,在四轴飞行器上安装甲烷等有害气体的检测装置,则可以在高空定点地检测有害气体;进入辐射区检查核设施;做军事侦察;甚至搬运材料,搭建房屋等等。本设计利用四轴搭载云台实现航拍任务,当然经过改装也可以执行其他任务。

本设计主要研究了四轴飞行器的姿态结算和飞行控制,并设计制作了一架四轴飞行器,对关键传感器做了标定,并利用用matlab分析数据,设计算法,还进行了单通道平衡试验调试,进行试飞实验取得了一定的效果。

 

2.系统方案

本设计采用STM32F4作为核心处理器,该处理器内核架构  ARM   Cortex-M4,具有高性能、低成本、低功耗等特点。

主控板包括传感器MPU6050电路模块、无线蓝牙模块、电机启动模块,电源管理模块等;遥控使用商品遥控及接收机。控制芯片捕获接收机的PPM命令信号,传感器与控制芯片之间采用IIC总线连接,MCU与电调之间用PWM传递控制信号。

软件算法才用基于四元数的互补滤波解算姿态叫,控制算法才用经典PID控制器控制云台舵机和四轴电机。如图2-1为本设计总体框图。

2.1

 

3.系统硬件设计

针对前面提出的整体设计方案,本设计采取模块化策略,将各个功能部分开来设计,最后组合起来。

 

3.1 电源管理模块

四轴飞行器要求整体设计质量较轻,体积较小,因此在电池的选取方面,采用体积小、质量轻、容量大的锂电池供电最合适。系统的核心芯片为STM32F103,常用工作电压为3.3V,同时惯性测量传感器,蓝牙通信模块的常规供电电压也为3.3V,锂电池的电压为11.4V,要使系统正常工作,需要将11.4V的锂电池电压稳压到3.3V。常用的78系列稳压芯片已不再适用,必须选择性能更好的稳压芯片。

经综合考虑,本电路采用LM1117-3.3和LM2940-5电源部分的核心芯片。电池电源经过LM2940-5降到5V后在输入LM1117-3.3稳压为3.3V。由于电机部分电流较大,故在飞控电路部分加入了过流保护,使用500mA的保险丝。电路图如下。

2.2

 

表3-1 四轴飞行器硬件清单

1.1

4.系统软件设计

软件设计上由控制核心STM32F4读取传感器信息,解算姿态角,以姿态角为被控制量融合遥控信息后,输出到四个电机及两个舵机以完成四轴飞行控制和云台的稳定补偿。下图是软件流程:

2.3

4.1.四元素计算姿态角的实现

根据前面给出的姿态解算方程与四元数,即可得到姿态计算系统的计算原理如下图(4-1)

2.4

本设计基于互补滤波的思想上完成的四元素算法,其核心思路为利用加速度测得的重力向量与估计姿态得到重力向量的误差来矫正陀螺仪积分误差,然后利用矫正后的陀螺仪积分得到姿态角。

首先不妨设处理后的加速度数据为:ax,ay,az,单位m/s^2。加速度计的向量为 (ax,ay,az)陀螺仪数据为:gx,gy,gz,单位rad/s。陀螺仪向量 (gx,gy,gz),由式(4-5)可得由载体到导航坐标系的四元数形式转换矩阵为:2.5

根据余弦矩阵和欧拉角的定义,地理坐标系的重力向量,转到机体坐标系,是 中的第三列的三个元素,即2.6 。所以加速的向量与估计重力向量叉积:

2.7

然后利用向量的叉积, 可视为误差向量,这个叉积向量仍旧是位于机体坐标系上的,而陀螺积分误差也是在机体坐标系,而且叉积的大小与陀螺积分误差成正比,正好拿来纠正陀螺。由于陀螺是对机体直接积分,所以对陀螺的纠正量会直接体现在对机体坐标系的纠正。用上面得到的结果校正陀螺仪:

2.8

此处k为一个常量系数。

再利用二阶毕卡法解四元数微分方程(4-6),更新四元数为下一次计算做准备。毕卡二阶算法为:

                           2.9                      

最后将四元数转变为欧拉角:

3.0

数据流程图如下:

3.1

 

通过以上算法我成功得出了飞行器的姿态角,在开启电机的情况下,角度误差在+/-2°以内,满足了控制要求。姿态计算效果如下图所示,其中红色和蓝色是直接由加速度计算出的俯仰角和横滚角,青色和黄色为姿态结算后的俯仰角和横滚角。由图中数据可看出,解算的姿态角不仅能即时的反应角度变化切曲线平滑,说明姿态解算算法有效。


 

4.2.控制设计

由于四轴飞行器独特的机械结构,即结构上的对称设计,使得四轴在俯仰角的控制欲横滚角的控制上有这近乎相同的控制特性,且两者相对独立。四轴飞行器的俯仰,横滚,偏航,升降可以通过四个输入量来控制。通过设定一个期望角度,调整电机转速,使得测得的姿态角稳定在期望角。控制律的设计主要采用是闭环控制。以姿态角做为被控制量,采用经典的PID控制算法。

四轴飞行器系统是一个时变且非线性的系统,采用传统PID算法的单一的反馈控制会使系统存在不同程度的超调和振荡现象,无法得到理想的控制效果。本文将前馈控制引入到了四轴飞行器系统的控制中,有效地改善了系统的实时性,提高了系统的反应速度;并且根据四轴飞行器系统的特点,对数字PID算法进行了改进,引入了微分先行环节,改善了系统的动态特性;使得控制器能够更好地适应四轴飞行器系统的实际情况。

在姿态角的控制中,本设计将控制器捕获到的遥控器信号转换为一个角度,作为期望角,与解算出来的测量角作差,得到偏差error。将error乘以一个比例系数kp。在只有kp作用下,系统会有静差所以考虑利用积分ki控制消除稳态误差。但积分控制会降低系统的动态性能,甚至造成闭环系统不稳定,因此要对积分进行限幅,防止积分过大。

对于微分,如果采用传统的D方法,在人为操纵四轴时会产生输入的设定值变化频繁且幅度较大,从而造成系统的振荡。对人为控制十分不利,为了解决设定值的频繁变化给系统带来的不良影响,本文在姿态角控制上引入了微分先行PID算法,其特点是只对输出量进行微分,即只对陀螺仪角速度测量值进行微分,而不对姿态角的设定值进行微分。这样,在设定值发生变化时,输出量并不会改变,而被控量的变化相对是比较缓和的,这就很好地避免了设定值的频繁变化给系统造成的振荡,明显地改善了系统的动态性能。控制周期定为4ms,姿态控制系统示意图如下:

3.2

                                      图5-1姿态控制系统示意图

通过前面一章的介绍我们已经的达到了俯仰,横滚,航向三个控制量,然后将它们分别输入三个独立的如上图所示的PID控制器,我们可以得到三个PID输出:pid_roll,pid_pitch,pid_yaw将这三个输出量做简单的线性运算输出给电机。部分代码如下:

#define PIDMIX(X,Y,Z) Motor_Thr + pid_pitch* Y+ pid_roll*X + pid_yaw*Z

   MOTOR1=MOTORLimit(PIDMIX(+1,+1,-1));       //REAR_R  后右电机

   MOTOR2=MOTORLimit(PIDMIX(-1,-1,-1));           //FRONT_R 前右电机

   MOTOR3=MOTORLimit(PIDMIX(-1,+1,+1));         //REAR_L  后左电机

   MOTOR4=MOTORLimit(PIDMIX(+1,-1,+1));         //FRONT_L 前左电机   

 

4.3. PID参数调节

PID参数的整定是PID控制的关键环节,直接影响到控制的效果。故一个PID设计的好不好往往要看其参数能否调节好,本设计的PID参数调节采用凑试法。凑试法是通过实际的闭环系统,通过观察系统的响应曲线,在本设计中通过观察被调量,PID输出,设定值三条曲线,判断出kp,ki,kd对系统响应的影响,反复尝试,最终达到满意响应,从而达到确定控制参数的kp,ki,kd的目的。在参数调节过程总遵循以下原则[17]:

(1)在输出不振荡时,增大比例增益P。

(2)在输出不振荡时,减小积分时间常数Ti。

(3)在输出不振荡时,增大微分时间常数Td。

(4)一般步骤:

a.确定比例增益P

确定比例增益P时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0(具体见PID的参数设定说明),使PID为纯比例调节。输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%~70%。比例增益P调试完成。

b.确定积分时间常数Ti

比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。记录此时的    Ti,设定PID的积分时间常数Ti为当前值的150%~180%。积分时间常数Ti调试完成。

c.确定积分时间常数Td

积分时间常数Td一般不用设定,为0即可。若要设定,与确定 P和Ti的方法相同,取不振荡时的30%。

d.系统空载、带载联调,再对PID参数进行微调,直至满足要求。

(5)最终调试好的标准应该是,PID输出曲线在有一个阶跃响应来是,响应一大一小两个波,小波是大波的四分之一。

四轴飞行器的PID整定,我们首先四轴固定在单轴平衡平台上,让飞行器完成单轴平衡,主要观察姿态角的(1)稳定性,能否平衡在期望角度;(2)响应性,当操纵命令改变时,四轴能否即时的响应期望的变化;(3)操纵性,由操纵员感受四轴的姿态是否已与操纵,会不会产生响应过冲。

在参数调整时,先调P,将I,D给0,先给一个小值P1,如果飞行器不能稳定在一个角度,则P1给小了,下一次给一个较大值P2,如果飞行器产生震荡则证明P2给大了,那么合适的P在P1-P2之间,反复试验几次可找到P震荡的临界点P0,然后保持P0不变按照调P的方法来调D,D是用来消除误差的,当抖动差不多被消除时,此时我们有较合适的P0,D0,在这两个值附近再试几组参数,观察效果得到最优参数。调好P,D后此时四轴的稳定状态与期望状态间也学会有静差,接下来加入I,参数有小到大,当静差差不多被消除时,我们再对P,I,D三组参数在小范围内联调。最后确定恰当的积分限幅值,完成整个PID参数的整定。

5.系统创新

  • 采用STM32F407这样一款高性能芯片作为控制核心,计算快速,扩展空间大。
  • 云台飞控一体化设计,既能完成飞行任务也能实现云台稳定。
  • 姿态算法采用基于四元数的互补滤波,姿态角无奇点,比起卡尔曼李春波等高端算法有着计算量小的特点且能投入使用,大大节约了cpu计算时间,也降低了对cpu的性能要求。
  • 利用四轴作为云台载体有着灵活机动,可让摄像头获得比较好的视野,且云台能消除四轴机体抖动。
  • 方便改装用于执行其他任务。

6.评测与结论

6.1.四轴飞行器的调试

6.1.1电源调试

将电路板焊接完成后,为电路板供电,用万用表测得个供电芯片电压如下                                              

表6-1各电源芯片电压值 

元件名

输入电压(V)

输出电压(V)

LM2940

12.4

5.01

LM1117

5.01

3.42

       由表中数据可知电源管理部分可满足系统供电要求。

 

6.1.2 姿态角调试

在完成控制器底层的硬件驱动后,开始姿态角算法的调试。利用蓝牙模块将解算出的姿态角数据发回上位机,摇动四轴机体,观察上位机数据曲线与姿态演示立方块。

4

                                                                                     图6-1 姿态角数据对比曲线

图6-1中黄色和蓝色为直接由加速度计算出的俯仰与横滚角,红色和青色为姿态解算后的姿态角,可明显看出直接由加速度计算出的姿态角噪声大,不平滑,不能真实反映姿态角的变化。而由四元数算法解算后的姿态角反应快,噪声小,足以满足控制要求。光观察曲线并不直观,还可以观察上位机中的立方块,当小立方块的姿态与四轴机体能够保持一致变化时说明姿态解算良好。通过以上手段可知姿态角解算满足需求。

4.1

 

6.1.3 控制电机调试

在第五章,已经针对四轴飞行器进行了PID的控制设计,但为了得到实际使用的PID控制参数我们还需要通过反复试验来整定出最优参数。为了方便参数的调试,在本设计过程中才用了先调平衡一个方向,再调另一个方向,最后联达到平衡的效果。为此设计了如下图所示试试验平台:

 4.2

                       图6-3 四轴单轴平衡试验

在调试过程中,为了避免频繁的下载程序带来的不变,采用串口蓝牙发送参数的做法,大大提高了调试效率。当俯仰与横滚两个轴都能够独立的平衡时,可以脱离单轴平台开始在空中进行航向角的稳定性调试。

 

6.2.四轴飞行器的试飞

当前面的各项调试都完成了之后,就准备要进行试飞实验。飞行试验是对控制系统的功能和技术指标进行验证的最终手段,也是衡量四轴设计是否成功的重要标志。

试飞前要确保系统各部分工作正常,稳定。检查各个接口连接是否正确,各部件安装是否牢固,电池电量是否充足。打开电源前检查遥控器油门是否在最低位置,起飞前先轻推油门确保电机工作正常。一切准备就绪,即可进行试飞。将四种飞行器放在水平地面上,开始启动姿态初始化程序,听到电调提示音后,缓慢增加油门,螺旋桨转速上升,将飞机拉离地面。由实际情况可看出当姿态发生倾斜时,姿态解算及PID控制能够及时调整电机转速,稳定飞行姿态。飞行器还能根据遥控指令的变化完成相应的动作。本此设计的四轴飞行器可实现垂直升降的要求,能保持姿态的稳定,机体晃动小,在微风的干扰下能够自动调整姿态,确保平稳飞行,且系统响应快,续航时间大概在8分钟。因此本次的设计是有效的。

附录

4.3

4.4

4.5

部分代码

 

void IMUupdate(float gx, float gy, float gz, float ax, float ay, float az)

{

  static float q0 = 1.0f, q1 = 0.0f, q2 = 0.0f, q3 = 0.0f;  

  float delta_2=0;

  const static float FACTOR = 0.002;

 

  float norm=0.0f;

  float vx, vy, vz;

  float ex, ey, ez;

 

  float q0q0 = q0*q0;

  float q0q1 = q0*q1;

  float q0q2 = q0*q2;

  float q1q1 = q1*q1;

  float q1q3 = q1*q3;

  float q2q2 = q2*q2;

  float q2q3 = q2*q3;

  float q3q3 = q3*q3;

 

  norm = sqrt(ax*ax + ay*ay +az*az);       // 测量正常化 把加速度计的三维向量转成单位向量。

  ax = ax /norm;

  ay = ay / norm;

  az = az / norm;

   

  vx = 2*(q1q3 - q0q2);                                         // 估计方向的重力                                     

  vy = 2*(q0q1 + q2q3);

  vz = q0q0 - q1q1 - q2q2 + q3q3;

 

  ex = (ay*vz - az*vy);                                                        

  ey = (az*vx - ax*vz);

  ez = (ax*vy - ay*vx);

 

  halfT=0.002;

  gx = gx + ex*FACTOR/halfT;                                 //校正陀螺仪测量值    用叉积误差来做PI修正陀螺零偏                                            

  gy = gy + ey*FACTOR/halfT;

  gz = gz + ez*FACTOR/halfT;        

 delta_2=(2*halfT*gx)*(2*halfT*gx)+(2*halfT*gy)*(2*halfT*gy)+(2*halfT*gz)*(2*halfT*gz);   

 

  q0 = (1-delta_2/8)*q0 + (-q1*gx - q2*gy - q3*gz)*halfT;                    // 整合四元数率       四元数微分方程       四元数更新算法,二阶毕卡法

  q1 = (1-delta_2/8)*q1 + (q0*gx + q2*gz - q3*gy)*halfT;

  q2 = (1-delta_2/8)*q2 + (q0*gy - q1*gz + q3*gx)*halfT;

  q3 = (1-delta_2/8)*q3 + (q0*gz + q1*gy - q2*gx)*halfT;                    

                                                                    

  norm = sqrt(q0*q0 + q1*q1 + q2*q2 + q3*q3);        // 正常化四元

  q0 = q0 / norm;

  q1 = q1 / norm;

  q2 = q2 / norm;

  q3 = q3 / norm;

 

  //转换为欧拉角

  Q_ANGLE.Pitch  = asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3;                                   // pitch

  Q_ANGLE.Roll = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3;    // roll

  Q_ANGLE.Yaw = -atan2(2 * q1 * q2 + 2 * q0 * q3, -2 * q2*q2 - 2 * q3 * q3 + 1)* 57.3; // yaw

}

关键字:STM32F4  四轴航拍  飞行器 引用地址:基于STM32F4的四轴航拍飞行器

上一篇:基于STM32的无线通信模块设计
下一篇:基于STM32的家庭服务机器人系统设计

推荐阅读最新更新时间:2024-03-16 15:07

再次调试STM32F407+DP83848
早在还没有毕业前,就调试过STM32F407+DP83848,这次又调试了一次,居然花了2天时间。STM32支持两种工业级标准的接口,来与外部物理层 PHY模块相连,分别是独立于介质的接口(MII)和简化的独立于接口的接口(RMII)。之前PHY芯片使用的MII模式,现在的这次调试是使用的RMII模式(参考了各方原理图,主要还是以官方开发板的MB786为主)。我还是以一个ST官方手册上的图来说说我的使用情况吧。 1.如果我们按照这个图上来画原理图,这个肯定没有错,但是对于一般使用(我们用的都是全双工的),CRS和COL这两根线使用的不多,至于为什么,我也说的不是很清楚,了解的同学们,可以补充下。 2.对于连接 DP83
[单片机]
再次调试<font color='red'>STM32F4</font>07+DP83848
基于STM32F429的定时器中断点亮LED的设计
电子时代,硬件在突飞猛进的发展,频率不断上升,目前的STM32系列,Cortex M系列,Cortex-M4的频率已经为:180MHz了,基本上与之前的ARM7/9频率差不多了,还有Cortex-M7,频率更高,出现了BGA封装与SDRAM DDR等。看来处理器越来越大众化了,物联网上的电子设备联网,也越来越普及了,硬件成本不断降低是大势所趋,因此,作为一个电子设计人员,还是要不断的学习掌握更多的技术知识与基础,从而不会被社会很快淘汰。 最近买了一个现成的STM32F429 Discovery 的开发板,想尝试一下较大点的嵌入式操作系统如RTEMS的移植与应用。因为有了STM32F103/107的基础,熟悉了硬件与固件库,ST
[单片机]
基于<font color='red'>STM32F4</font>29的定时器中断点亮LED的设计
stm32F4之使用I2C读写24C02
一.24C02简单介绍 1.串行E2PROM是基于I2C-BUS 的存储器件, 2.可以支持100万次擦除,数据可以保存100年, 3.支持每次读写1字节 4.写周期最大5ms(即最好保证在5ms后进行读写,否则可以数据将会读取错误) 二.24C02的读写时序图 从手册中可以找到以下两个读写图,我也将以以下两个图为例进行函数编写,其他读写图请查手册 三.用模拟的I2C协议封装24C02的读与写 该设备为IIC设备,因此我们要先确定其设备地址,STM32F4探索者的开发板上为2K的E2PROM,A2=A1=A0 因此设备地址为(0XA0/0xA1) 根据下图进行编程: 字节写: 使用封装好
[单片机]
<font color='red'>stm32F4</font>之使用I2C读写24C02
stm32F4做浮点计算的问题
各位大神,我现在移植一套程序到stm32F4上,之前是在PC机上跑的,考虑到这款芯片有FPU所以选的这款,在DEBUG的时候发现很多问题,除了设置FPU外,发现一些很简单的运算也会出问题,不知道有没有遇到同样问题的人,经常会跳到HardFault_Handler这个函数中去,有没有人知道这怎么解决的? 之前是因为FPU设置没有开启,所以遇到浮点运算就会崩溃,一些简单的浮点赋值语句就会崩溃,但是现在开启了,但是现在一些简单的计算还是会崩溃,有没有人遇到过这种情况的? 今天也在找这个问题,看到这个还是12年的帖子,帖子中还没有解决问题的方法。我把我找到的分享一下: 这是ST的库的问题,在systeminit的函数里,加上以
[单片机]
第16章 STM32F429必备的HAL库API
16.1 初学者重要提示 对于一些常用的函数,大家一定要熟练的掌握都实现了什么功能,比如HAL_Init,HAL_RCC_OscConfig,HAL_RCC_ClockConfig等。最好的办法是把这些函数的源码读一遍。 16.2 那些是必备的API 这里我们通过一个简单的初始化流程来了解STM32F4的工程模板所必备的库文件和API: 第1步:系统上电复位,进入启动文件startup_stm32f429xx.s,在这个文件里面执行复位中断服务程序。 在复位中断服务程序里面执行函数SystemInit,此函数在文件system_stm32f4xx.c里面。 之后是调用编译器封装好的函数,比如用于MDK的启动文件是调
[单片机]
第16章 <font color='red'>STM32F4</font>29必备的HAL库API
STM32F4学习笔记11——CRC循环冗余校验
关于CRC校验有以下几个方面 1.模2除(也就是异或)。 2.多项式与二进制关系(x的最高幂次对应二进制数的最高位,以下各位对应多项式的各幂次,有此幂次项对应1,无此幂次项对应0,x的最高幂次为R,转换成对应的二进制数有R+1位。)。 CRC基本原理 循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。 校验码的具体生成过程为:假设发送信息用信息多项式C(X)表示,将C(x)左移R位,则可表示成C(x)
[单片机]
<font color='red'>STM32F4</font>学习笔记11——CRC循环冗余校验
stm32f4xx 加密
一、ID获取 34 设备电子签名 电子签名存储在 Flash 区。可以使用 JTAG/SWD 或 CPU 对其进行读取。它包含出厂前编程 的标识数据,这些标识数据允许用户固件或其它外部设备将其接口与 STM32F4xx 微控制器 的特性自动匹配。 34.1 唯一设备 ID 寄存器(96 位) 唯一设备标识符最适合: ● 用作序列号(例如 USB 字符串序列号或其它终端应用程序) ● 在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时用作安全密钥以 提高 Flash 中代码的安全性 ● 激活安全自举过程等 96 位的唯一设备标识符提供了一个对于任何设备和任何上下文都唯一的参考号码。用户永远 不能改变这些
[单片机]
<font color='red'>stm32f4</font>xx 加密
迁移51 的 LCD12864 到 Stm32F407
假期参加电赛崩了。。。闲的无聊,准备做一些底层的代码分享一下,也算是给自己磨炼一下吧。 这次做的是Stm32F407ZGT6 驱动LCD12864 的代码测试的时候使用的是正点原子的探索者 STM32F4开发板、 LCD 插在清翔的51单片机开发板上注意我是用的是 带有中文字库的版本 这里注意驱动LCD需要给模块一个参考电压也就是上图的VO否则LCD显示会出异常(颜色过深或者过浅) 我也是因为这个 所以才使用了成品开发板的电路 程序是从51单片机的程序上迁移过来的,咱们不做深究,只是注重一些迁移的细节。 以上是三个控制引脚的设置,其实还有几个是PSB需要设置,这个是一直拉高我就没用IO了 就直接接到VCC了
[单片机]
迁移51 的 LCD12864 到 <font color='red'>Stm32F4</font>07
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved