国民技术
直播中

辛书伟

12年用户 110经验值
擅长:嵌入式技术
私信 关注
[经验]

【国民技术N32项目移植】N32G45XVL-STB开箱、点灯

本次使用rtt 进行功能开发,sdk manger 中下载 rt 支持库
image.png

创建工程
image.png

led 点灯,PB4是jtag 管脚,需要将管脚复用开启使能,使用swd 进行下载

#include <stdint.h>
#include <rtthread.h>
#include <rtdevice.h>
#include <drv_gpio.h>
#define LED1_PIN GET_PIN(B,5)
#define LED2_PIN GET_PIN(B,4)
#define LED3_PIN GET_PIN(A,8)
void LED_Init(void)
{
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_AFIO,ENABLE);
GPIO_ConfigPinRemap(GPIO_RMP_SW_JTAG_SW_ENABLE, ENABLE);
// 设置引脚为输出方式
rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT);
rt_pin_mode(LED2_PIN, PIN_MODE_OUTPUT);
rt_pin_mode(LED3_PIN, PIN_MODE_OUTPUT);
}
static void led_thread_entry(void* p)
{
LED_Init();
while(1)
{
#if 1
rt_pin_write(LED1_PIN, PIN_HIGH);
rt_thread_mdelay(400);
rt_pin_write(LED1_PIN, PIN_LOW);
rt_thread_mdelay(400);
#endif
rt_pin_write(LED2_PIN, PIN_HIGH);
rt_thread_mdelay(400);
rt_pin_write(LED2_PIN, PIN_LOW);
rt_thread_mdelay(400);
rt_pin_write(LED3_PIN, PIN_HIGH);
rt_thread_mdelay(400);
rt_pin_write(LED3_PIN, PIN_LOW);
rt_thread_mdelay(400);
}
}
static int Thread_LED(void)
{

rt_kprintf("Thread_led ");
rt_thread_t thread_led= RT_NULL;
thread_led = rt_thread_create( "led",//线程名字
led_thread_entry,//线程入口函数
RT_NULL,//线程入口函数参数
1024,//分配堆栈大小
5,//线程的优先级
10);//线程所分配的时间片
if(thread_led == RT_NULL)
{
rt_kprintf("Thread_led ERROR");
return RT_ERROR;
}
rt_thread_startup(thread_led); //启动线程
}

INIT_APP_EXPORT(Thread_LED);//将线程初始化添加入系统初始化

GET_PIN 使用drv_gpio.h 中定义,之前用过1.1版本,不太友好,这次新版本gpio 用起来比较方便

点灯效果

更多回帖

发帖
×
20
完善资料,
赚取积分