RT Thread Studio使用经验——GPIO驱动实现[LED闪烁]
一、环境准备
使用STM32F103RCT6(正点原子Mini开发板)开发,Flash大小为256k,LED对应引脚为PA8,使用ST-Link调试器烧录。
二、项目创建
创建RT Thread标准版本项目,选择芯片开发
并选择好对应的芯片型号。如图:
三、RT - Thread Settings配置
找到Drivers里的Pin图标左键将其点亮并保存:
这一步相当于要使用该芯片的GPIO资源。
此时头文件rtdevice.h
的内容就会发生改变:
很明显drivers/pin.h
被包含道工程中了,这也是设置GPIO所需要的头文件。
四、main函数编写
找到applications文件夹里的main.c,此时应该有一个伴随项目创建时的示例main程序。只需要对原有的main程序稍加改动就可以实现简单的GPIO控制了。
原本的示例代码时这样的:
/*
* Copyright (c) 2006-2023, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2023-03-16 RT-Thread first version
*/
#include <rtthread.h>
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
int main(void)
{
int count = 1;
while (count++)
{
LOG_D("Hello RT-Thread!");
rt_thread_mdelay(1000);
}
return RT_EOK;
}
为了能够设置GPIO,我们首先知道设置GPIO引脚的电平需要几步:
1.导入对应的头文件rtdevice.h
,上文已经讲过:
#include <rtthread.h>
#include <rtdevice.h> //RT thread标准项目中添加芯片资源的头文件
#include <drv_common.h>//驱动常用代码头文件
#include <rtdbg.h>
2.通过宏定义设置对应引脚
#define LED0_PIN GET_PIN(A, 8) //将PA8的引脚号定义为LED0_PIN
3.在main函数中开始写程序,首先是初始化GPIO引脚,设置为推挽输出模式:
rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);//初始化GPIO引脚,设置为推挽输出模式
4.编写LED闪烁的逻辑代码:
//LED闪烁的逻辑代码
while (1)
{
rt_pin_write(LED0_PIN, PIN_HIGH);//拉高PA8的引脚电平
rt_thread_mdelay(500);//延时500ms
rt_pin_write(LED0_PIN, PIN_LOW);//拉低PA8的引脚电平
rt_thread_mdelay(500);//延时500ms
}
5.总体代码
main.c
/*
* Copyright (c) 2006-2023, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2023-03-16 RT-Thread first version
*/
#include <rtthread.h>
#include <rtdevice.h>//RT thread标准项目中添加芯片资源的头文件
#include <drv_common.h>//驱动常用代码头文件
#include <rtdbg.h>
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#define LED0_PIN GET_PIN(A, 8) //将PA8的引脚号定义为LED0_PIN
int main(void)
{
rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);//初始化GPIO引脚,设置为推挽输出模式
//LED闪烁的逻辑代码
while (1)
{
rt_pin_write(LED0_PIN, PIN_HIGH);//拉高PA8的引脚电平
rt_thread_mdelay(500);//延时500ms
rt_pin_write(LED0_PIN, PIN_LOW);//拉低PA8的引脚电平
rt_thread_mdelay(500);//延时500ms
}
return RT_EOK;
}
五、编译并烧录
点击左上角的为项目"xxx"构建“Debug”
,图标是一个小锤子,或者按快捷键CTRL+B
编译项目。
没有问题的话,控制台会出现这个画面:
烧录程序快捷键CTRL+ALT+D
,烧录程序到开发板。
没有问题会出现这个画面: