本帖最后由 wywhh 于 2024-5-8 14:02 编辑
1.环境搭建
参考大佬的教程:【祖传点灯】安信可Ai-M61-32S环境搭建&点灯 - 板子申请专区 - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com)
2.点灯
#include <FreeRTOS.h>
#include "board.h"
#include "bflb_gpio.h"
#define DBG_TAG "MAIN"
#include "log.h"
static TaskHandle_t LED_Task_handle;
struct bflb_device_s *gpio;
struct bflb_device_s *uartx;
uint32_t gpio_group[] = {GPIO_PIN_12, GPIO_PIN_14, GPIO_PIN_15};
static void LED_task(void *pvParameters)
{
gpio = bflb_device_get_by_name("gpio");
bflb_gpio_init(gpio, GPIO_PIN_12, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
bflb_gpio_init(gpio, GPIO_PIN_14, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
bflb_gpio_init(gpio, GPIO_PIN_15, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
bflb_gpio_reset(gpio, GPIO_PIN_12);
bflb_gpio_reset(gpio, GPIO_PIN_14);
bflb_gpio_reset(gpio, GPIO_PIN_15);
while(1)
{
printf("gpio output\r\n");
bflb_gpio_set(gpio, gpio_group[0]);
bflb_mtimer_delay_ms(1000);
bflb_gpio_reset(gpio, gpio_group[0]);
bflb_mtimer_delay_ms(1000);
bflb_gpio_set(gpio, gpio_group[1]);
bflb_mtimer_delay_ms(1000);
bflb_gpio_reset(gpio, gpio_group[1]);
bflb_mtimer_delay_ms(1000);
bflb_gpio_set(gpio, gpio_group[2]);
bflb_mtimer_delay_ms(1000);
bflb_gpio_reset(gpio, gpio_group[2]);
bflb_mtimer_delay_ms(1000);
}
}
int main(void)
{
board_init();
printf("teat\r\n");
configASSERT((configMAX_PRIORITIES > 4));
xTaskCreate(LED_task, (char *)"LED_task", 512, NULL, configMAX_PRIORITIES - 2, &LED_Task_handle);
vTaskStartScheduler();
while (1) {
}
}
串口在 board_init() 函数中已经初始化,波特率设置为2000000(第一次用这么快),直接使用printf就可以。
先写这么多,交个作业,怕后面忘了,板子挺好玩的。 |