因为疫情的原因,今年在家实在是太无聊了,突然想起自己去年报名参加了个合泰杯比赛,本人也是菜鸟一个,之前从未接触过合泰的单片机,刚好手头上有一块HT32F52352的开发板,型号是ESK32-30501U2.1。上一届师兄扔在实验室里,我捡回来的,刚好也就把它带了回家。都说学习一款单片机最开始的是点亮LED,我觉得应该是配置环境还差不多,但由于我本人比较懒,配置环境可以参考这位博主的这篇文章。把需要下载的资料全部下载好,方便以后的学习。还有本文中的工程文件源码。(https://download.csdn.net/download/OldHuangC/12134896)
关于这款单片机的资料在网上少之又少,我在网上找了大量的资料,本着能不自己造轮子绝不自己造轮子的原则,终于完成了隆重的点灯仪式。
由原理图可知,控制这两个LED灯的分别是PC14和PC15这两个脚,所以我们只要控制这两个口就能实现led的亮灭了。
LED.H
#ifndef _LED_H
#define _LED_H
#include "ht32f5xxxx_01.h"
#define LED_GPIO_GROUP (GPIO_PC)
#define LED1_PIN (GPIO_PIN_14)
#define LED2_PIN (GPIO_PIN_15)
#define LED_AFIO_MODE (AFIO_FUN_GPIO)
#define LEDToggle(p,i) {p->DOUTR ^=i;} //输出反转状态,p:HT_GPIOA~D
void LED_Init(void);
#endif
LED.C
#include "led.h"
static void LED_CKCU_Config() //配置时钟
{
CKCU_PeripClockConfig_TypeDef CCLOCK = {{0}};//不开启外设时钟相应功能无法使用
CCLOCK.Bit.PC = 1;//开启PC时钟
CCLOCK.Bit.AFIO = 1;//开启复用功能时钟
CKCU_PeripClockConfig(CCLOCK, ENABLE);//使能时钟
}
static void LED_GPIO_Config() //配置GPIO口,使用ht32f5xxxx_gpio.c里的库函数配置IO功能
{
HT_GPIO_TypeDef* GPIOgroup;
GPIOgroup = HT_GPIOC;
AFIO_GPxConfig(LED_GPIO_GROUP, LED1_PIN|LED2_PIN, LED_AFIO_MODE); //配置GPIO模式:AFIO_MODE_DEFAULT 默认,AFIO_MODE_1~15模式1~15
GPIO_DirectionConfig(GPIOgroup,LED1_PIN|LED2_PIN, GPIO_DIR_OUT); //配置GPIO引脚的方向:GPIO_DIR_OUT输出orGPIO_DIR_IN输入 */
GPIO_PullResistorConfig(GPIOgroup,LED1_PIN|LED2_PIN, GPIO_PR_DISABLE);//配置指定GPIO引脚的上下拉电阻。GPIO_PR_UP 带内部上拉电阻的引脚GPIO_PR_DOWN 带内部上拉电阻的引脚 GPIO_PR_DISABLE 没有拉电阻的引脚。
GPIO_DriveConfig(GPIOgroup,LED1_PIN|LED2_PIN, GPIO_DV_8MA); //选择指定GPIO引脚的驱动电流,可选GPIO_DV_4/8/12/16MA
}
void LED_Init() //led初始化函数
{
LED_CKCU_Config();
LED_GPIO_Config();
}
main.c
#include "ht32.h"
#include "ht32_board.h"
#include "led.h"
#include "delay.h"
int main()
{
LED_Init();
while(1){
GPIO_WriteOutBits(HT_GPIOC,LED1_PIN,SET);
GPIO_WriteOutBits(HT_GPIOC,LED2_PIN,RESET);
delay_s(1);
GPIO_WriteOutBits(HT_GPIOC,LED1_PIN,RESET);
GPIO_WriteOutBits(HT_GPIOC,LED2_PIN,SET);
delay_s(1);
}
}
编译之前,记得设置好以下参数
最后看下效果。。。
点灯仪式正式完成,欢迎大家一起交流学习!
来源:CSDN
作者:Old黄
链接:https://blog.csdn.net/OldHuangC/article/details/104172752