AN0003 RT-Thread应用笔记之I2C设备应用指南学习笔记

  • 文章作者:Wendell
  • 原文地址:https://www.jianshu.com/p/e46d45da6f7d
  • 转载请注明出处!

说明

  • 开发环境:keil MDK V5.21.1.0
  • 硬件平台:STM32F429-apollo开发板(正点原子)
  • Env工具:env_released_0.7.1
  • RT-Thread版本: 3.1.1
  • 本文以RT-Thread官网的AN0003 RT-Thread应用笔记之I2C设备应用指南为依据,在STM32F429-apollo开发板上进行相应实验。

配置工程

  在上一篇 AN0002 RT-Thread通用GPIO设备应用指南学习笔记 中已经完成了GPIO的学习,现在我们仍然使用上一篇中使用的工程文件,进行I2C设备的学习。
  在工程目录下右击,选择ConEmu Here,打开Env工具。在Env 命令行中输入menuconfig,按enter键进入配置界面,使用menuconfig工具配置工程,找到下图中间红框的2个选项,路径在左上角红框内,使用空格键打开该选项,保存后退出。

image.png

  Env 命令行中输入pkgs --update,按enter键进行软件包的更新,如果本地已经有所有需要的软件包,则不做改变,如果有缺少的软件包则会自动从GitHub库中下载。

加入代码

  由于官方资料使用的开发板为STM32F407探索者,因此官方I2C设备应用指南中设计的实验为使用I2C总线与mpu6050六轴传感器通信,而STM32F429阿波罗开发板已经将该传感器升级为mpu9250九轴传感器,官方并没有相应的驱动文件,因此只好自己动手,丰衣足食喽!根据官方mpu6050的驱动文件和正点原子在裸跑资料中给出的文件,我编写了mpu9250的驱动文件drv_mpu9250.c,放在了资料中,感兴趣的小伙伴可以自己去研究研究。
  打开rt-thread学习准备一文中下载的“RT-Thread应用笔记资料(STM32F429阿波罗)”,在“I2C设备应用笔记”文件夹下有代码文件 app_mpu9250.c、 app_mpu9250.h、drv_mpu9250.c、drv_mpu9250.h,将app_mpu9250.c和 app_mpu9250.h文件拷贝到项目文件夹stm32f429-apollo\applications目录下,将drv_mpu9250.c和drv_mpu9250.h文件拷贝到项目文件夹stm32f429-apollo\drivers目录下。
  Env工具是通过SConscript文件来组织文件的,手动添加的文件会在下次使用Env工具时被删除,因此修改SConscript文件才是正确的添加方法!

  • 使用notepad++打开applications文件夹中的SConscript文件,并按照图中位置添加app_mpu9250.c,保存后退出。


    image.png
  • 使用notepad++打开drivers文件夹中的SConscript文件,并按照图中位置添加drv_mpu9250.c,保存后退出。


    image.png

      在Env命令行中使用scons --target=mdk5 -s命令重新生成工程并打开,可以看到app_mpu9250.c已经成功添加到application目录下,drv_mpu9250.c已经成功添加到drivers目录下! 截图略O(∩_∩)O哈哈~
      在application.c文件中添加头文件

#include "app_mpu9250.h"

  使用如下函数代替application.c文件的rt_application_init()函数

int rt_application_init(void)
{
    rt_thread_t tid;


    tid = rt_thread_create("init",
        rt_init_thread_entry, RT_NULL,
        2048, RT_THREAD_PRIORITY_MAX/3, 20);

    if (tid != RT_NULL)
        rt_thread_startup(tid);
    
    mpu9250_thread_init();

    return 0;
}

  编译后下载到开发板,打开串口调试助手XCOM V2.0,按照自己计算机显示的com口编号配置好,串口输出如下图:


image.png

又搞定一个,好开心!

你可能感兴趣的:(AN0003 RT-Thread应用笔记之I2C设备应用指南学习笔记)