电赛程序项目的建立与外设程序移植

首先我们需要有一个常用的模板template,当建立我们的项目程序时,只需要在该模板的基础上移植我们所用到的外设的程序(.c和.h文件),程序我已准备好

模板template文件

 模板程序包含基本的延时(delay.c)和串口1调试(usart.c)功能,使用时直接调用对应的函数即可

在我们创建自己的项目程序时,我们根据需要,将相应的外设的驱动程序文件(.c和.h)加入到HARDWARE中,即可直接使用该外设,在main函数调用对应的函数,实现我们所需的功能。

博主已完成了大部分外设程序的编写和调试,程序包括舵机,直流电机,陀螺仪MPU6050,红外巡迹,超声波测距,陀螺仪,LCD,LED,stm32与Openmv的通信,各外设程序均带串口1调试功能

 

下面以陀螺仪MPU6050为例,展示如何将要用到的外设移植到template工程模板中

首先我们将外设的.c和.h文件夹复制到template的HAREWARE中

 

 可以看到MPU6050文件夹中包含的是MPU6050这个外设的.c和.h文件,同理如果我们想用到其他外设,就将对应的外设文件夹复制到HAREWARE中,每一个外设文件夹仅包含该外设的.c和.h文件(大大方便移植)

然后我们打开template的工程文件object(在USER文件夹中)

 我们需要在工程中引入刚刚加入的MPU6050的.c和.h文件:

 双击HARDWARE文件夹

将MPU6050文件夹中所有的.c文件加入到工程中 

 

点击HARDWARE可以看到已经将所有.c文件加入到工程中

我们还需要将.h文件引入到工程中
点击魔术棒

 

 选择外设文件夹,点击确定

在main文件中引入外设所有的头文件

 此时已完成外设程序的引入

int main(void)
 {	 	
	float pitch,roll,yaw; 		//欧拉角
	short aacx,aacy,aacz;		//加速度传感器原始数据
	short gyrox,gyroy,gyroz;	//陀螺仪原始数据
	short temp;					//温度	
	 
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	uart_init(115200);	 	//串口初始化为115200
	delay_init();	//延时初始化 	
	 
	while(MPU_Init()!=0){}					//初始化MPU6050
 
	//让6050的DMP初始化成功才继续下去
	while(mpu_dmp_init()!=0){} 
	
 
 	while(1)
	{	
		printf("3\r\n");
		//读取数据成功才下去
		while(mpu_dmp_get_data(&pitch,&roll,&yaw)!=0)	{} 
		temp=MPU_Get_Temperature();	//得到温度值
		MPU_Get_Accelerometer(&aacx,&aacy,&aacz);	//得到加速度传感器数据
		MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz);	//得到陀螺仪数据
			
		printf("roll:%d  pitch:%d  yaw:%d\r\n",(int)(roll*100),(int)(pitch*100),(int)            
        (yaw*10));delay_ms(400);
									
	} 	
}
 

在main函数中,完成外设的初始化

	while(MPU_Init()!=0){}		//初始化MPU6050
 
	while(mpu_dmp_init()!=0){} //DMP初始化

 后面则根据需要功能,编写对应程序,这里将陀螺仪MPU6050读到的数据通过串口助手进行打印,在电脑上显示,以方便检测

由于MPU6050采用IIC通信,我们可以打开IIC文件,观看引脚分布

并且可以根据需要进行引脚的更改。

其他外设程序的移植过程类似,如有问题,可私聊,有空就解答!

补充:所有程序用STM32的标准库进行编写

电子设计竞赛控制类模板程序与外设开源程序(供移植)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为电子而生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值