基于rt-thread点亮一个灯
使用的开发板是正点原子的探索者,芯片型号是stm32f407ZGT6。
首先安装RT-Thread Studio:

然后创建一个工程,设置过程如下:

创建完之后main.c文件里初始代码如下:

编译,然后下载到开发板里

可以看到串口打印结果如下:

接下来点亮开发板中引脚PF9控制的灯。
代码如下:
#include <rtthread.h>
#include <rtdevice.h>
#include "board.h"
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
#define LED0_PIN GET_PIN(F, 9)
int main(void)
{
int count = 1;
rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);
while (count++)
{
rt_pin_write(LED0_PIN, count%2);
LOG_D("Hello RT-Thread!");
rt_thread_mdelay(1000);
}
return RT_EOK;
}
编译并下载后可以看到红灯闪烁。
注意,添加gpio控制之后发现编译错误,是因为rtthread版本跟stm32f407库版本不匹配,重新下载0.2.2版本

基于rt-thread中断方式检测按键
代码如下:
#include <rtthread.h>
#include <rtdevice.h>
#include "board.h"
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
#define LED0_PIN GET_PIN(F, 9)
#define KEY0_PIN GET_PIN(E, 2)
int led_flag;
void key0_irq_handler(void* arg)
{
led_flag++;
rt_pin_write(LED0_PIN, led_flag%2);
}
int main(void)
{
int count = 1;
rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);
rt_pin_mode(KEY0_PIN, PIN_MODE_INPUT_PULLUP);
rt_pin_attach_irq(KEY0_PIN, PIN_IRQ_MODE_FALLING, key0_irq_handler, RT_NULL);
rt_pin_irq_enable(KEY0_PIN, PIN_IRQ_ENABLE);
led_flag = 0;
while (count++)
{
LOG_D("Hello RT-Thread!");
rt_thread_mdelay(1000);
}
return RT_EOK;
}
编译并下载到开发板,按下按键灯亮,再按下按键灯灭。
743

被折叠的 条评论
为什么被折叠?



