今天来更新一下最近的进度,自己在雅特力官网找到了一个437的FreeRTOS+LWIP的例程,所以自己想要做一个移植,正好目前有个项目需要用到以太网,所以将计就计,就把代码移植了过来,有兴趣的可以找一下雅特力官网FAQ的帖子,里面有很多东西可以学习,我也是上面看到这个的。这里就直接上代码吧,简单一点。
#include "at32f435_437_clock.h"
#include "DRV_Delay.h"
#include "DRV_LED.h"
#include "FreeRTOS.h"
#include "task.h"
void LED_Init(void)
{
gpio_init_type gpio_init_struct;
crm_periph_clock_enable(CRM_GPIOD_PERIPH_CLOCK, TRUE ); /* enable the led clock */
crm_periph_clock_enable(CRM_GPIOD_PERIPH_CLOCK, TRUE );
gpio_default_para_init(&gpio_init_struct);/* set default parameter */
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; /* configure the led gpio */
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
gpio_init_struct.gpio_pins =GPIO_PINS_13 |GPIO_PINS_14|GPIO_PINS_15;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init(GPIOD, &gpio_init_struct);
}
void LED_Flash(void)
{
gpio_bits_set(GPIOD,GPIO_PINS_13);
vTaskDelay(100);
gpio_bits_set(GPIOD,GPIO_PINS_14);
vTaskDelay(100);
gpio_bits_set(GPIOD,GPIO_PINS_15);
vTaskDelay(100);
gpio_bits_reset(GPIOD,GPIO_PINS_13);
vTaskDelay(300);
gpio_bits_reset(GPIOD,GPIO_PINS_14);
vTaskDelay(100);
gpio_bits_reset(GPIOD,GPIO_PINS_15);
vTaskDelay(100);
}
void LED_Test_Task(void)
{
LED_Init();
while(1)
{
LED_Flash();
}
}
上面的是LED闪烁的代码,下面来看看主程序,
我把代码打包上来,大家一起交流啊。
最后来个视频,闪一闪。