美文网首页
AN0002 RT-Thread通用GPIO设备应用指南学习笔记

AN0002 RT-Thread通用GPIO设备应用指南学习笔记

作者: EmbeddedLife | 来源:发表于2018-09-13 16:42 被阅读0次

    说明

    • 开发环境:keil MDK V5.21.1.0
    • 硬件平台:STM32F429-apollo开发板(正点原子)
    • Env工具:env_released_0.7.1
    • RT-Thread版本: 3.1.1

    配置工程

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

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

    加入代码

      打开rt-thread学习准备一文中下载的“RT-Thread应用笔记资料(STM32F429阿波罗)”,在“通用GPIO设备应用笔记”文件夹下有代码文件 app_gpio.c、 app_gpio.h,将这两个文件拷贝到项目文件夹stm32f429-apollo\applications目录下。
      Env工具是通过SConscript文件来组织文件的,手动添加的文件会在下次使用Env工具时被删除,因此修改SConscript文件才是正确的添加方法!使用notepad++打开applications文件夹中的SConscript文件,并按照图中位置添加app_gpio.c,保存后退出。

    image.png
      在Env命令行中使用scons --target=mdk5 -s命令重新生成工程并打开,可以看到app_gpio.c已经成功添加到application目录下!
    image.png
      在application.c文件中添加头文件
    #include "app_uart.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);
        
        tid = rt_thread_create("gpio",
                        gpio_thread_entry, 
                        RT_NULL,
                        1024, 
                        3, 
                        10);
        /* 创建成功则启动线程 */
        if (tid != RT_NULL)
            rt_thread_startup(tid);
    
        return 0;
    }
    

      编译后下载到开发板,指示灯DS0和DS1开始以1秒为周期闪烁,打开串口调试助手XCOM V2.0,按照自己计算机显示的com口编号配置好,依次按下按键KEY0、KEY1、KEY2、KEY_UP,串口输出如下图:


    image.png

    敲黑板!注意注意啦!
      实验过程中发现使用中断方式的KEY0(其它三个按键使用的查询方式)行为异常,不能输出指定内容,和官方资料里给出的状态完全不一致。经各种检查测试后,考虑是按键没有上拉电阻,IO内部上拉能力有限导致状态不稳定,在按键KEY0脚外接上拉电阻1K(1K~10K均可)后成功治疗好该疑难杂症!

    相关文章

      网友评论

          本文标题:AN0002 RT-Thread通用GPIO设备应用指南学习笔记

          本文链接:https://www.haomeiwen.com/subject/rnnwgftx.html