1 Star 1 Fork 0

AT32437_OpenHarmony/vendor

Create your Gitee Account
Explore and code with more than 14 million developers,Free private repositories !:)
Sign up
文件
Clone or Download
main.c 2.67 KB
Copy Edit Raw Blame History
#include <stdio.h>
#include <unistd.h>
#include "ohos_init.h"
#include "cmsis_os2.h"
#include "at32f435_437_board.h"
#include "at32f435_437_clock.h"
void test(void)
{
//开启GPIOD的时钟
crm_periph_clock_enable(CRM_GPIOD_PERIPH_CLOCK, TRUE);
//gpio结构体
gpio_init_type gpio_config;
//io管脚
gpio_config.gpio_pins = GPIO_PINS_13 | GPIO_PINS_14 | GPIO_PINS_15;
//输出模式
gpio_config.gpio_mode = GPIO_MODE_OUTPUT;
//无上下拉电阻
gpio_config.gpio_pull = GPIO_PULL_NONE;
//设置为推挽输出模式,即引脚可以提供高电平和低电平输出。
gpio_config.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
/*
GPIO_DRIVE_STRENGTH_MODERATE 对应适中的电流推动/吸入能力
GPIO_DRIVE_STRENGTH_STRONGER 对应较大的电流推动/吸入能力
GPIO_DRIVE_STRENGTH_MAXIMUM 对应极大的电流推动/吸入能力
如果 IO 速度设置为最大的推动力设置,且负载较小时,易在 IO 上产生过冲振铃现象,存在影响应用的可能性
*/
gpio_config.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
//初始化gpio
gpio_init(GPIOD, &gpio_config); // group C
while (TRUE) {
printf("GpioTask: LED_On\n");
//通过GPIO输入数据寄存器odt输出高电平,也可以通过gpio_bits_set来输出高电平(可以查看gpio_bits_set定义)
GPIOD->odt |= GPIO_PINS_13;
GPIOD->odt |= GPIO_PINS_14;
GPIOD->odt |= GPIO_PINS_15;
//gpio_bits_set(GPIOD,GPIO_PINS_1);
//sleep(1);
//delay_ms(10);
//delay_sec(1);
osDelay(80);
printf("GpioTask: LED_Off\n");
//通过GPIO输入数据寄存器odt输出高电平,也可以通过gpio_bits_reset来输出高电平(可以查看gpio_bits_reset定义)
GPIOD->odt &= ~GPIO_PINS_13;
GPIOD->odt &= ~GPIO_PINS_14;
GPIOD->odt &= ~GPIO_PINS_15;
//gpio_bits_reset(GPIOD,GPIO_PINS_1);
//sleep(1);
//delay_ms(10);
//delay_sec(1);
osDelay(80);
}
return NULL;
// while(1)
// {
// at32_led_toggle(LED2);
// delay_ms(200);
// at32_led_toggle(LED3);
// delay_ms(200);
// at32_led_toggle(LED4);
// delay_ms(200);
// }
}
static void testTask(void)
{
osThreadAttr_t attr;
attr.name = "led_test";
attr.attr_bits = 0U;
attr.cb_mem = NULL;
attr.cb_size = 0U;
attr.stack_mem = NULL;
attr.stack_size = 20*1024;
attr.priority = osPriorityNormal;
if (osThreadNew((osThreadFunc_t)test, NULL, &attr) == NULL) {
printf("[testTask] Falied to create led_test!\n");
}
}
APP_FEATURE_INIT(testTask);
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/AT32437_OpenHarmony/vendor.git
git@gitee.com:AT32437_OpenHarmony/vendor.git
AT32437_OpenHarmony
vendor
vendor
master

Search