合泰32位单片机入门/以HT32F52352为例
合泰32位单片机入门/以HT32F52352为例Hi!很高兴看到你。以前经常在CSDN上查找资料,经常能找到想要的,因此也希望在此分享自己的学习心得与收获。32位的单片机其实都差不多,很多内核都是ARM系列,只是不同公司用的外设有些不一样,包括一些端口、库函数。之前有接触过STM32,但是不够深入,本文以HT32F52352为例,说明如果开始一个工程的简单配置。希望能帮助到一些初学者,如有错误请提出指正。(HT32F52352例程下载https://download.csdn.net/download/a_13290783356/11490501)
————————————————
版权声明:本文为CSDN博主「_C位出道_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a_13290783356/article/details/98875941
步骤
STEP1: 新建工程 (建议直接使用例程修改)
STEP2: 头文件
#ifndef _xxxx_H
#define _xxxx_H
#include "ht32f5xxxx_01.h" //调用此头文件可以使用一些已经封装好的端口
#define xxxyyy //xxx表示重新定义的端口或者变量、常量;yyy表示xxx具体所指的端口、变量或者常量等,可以是已经封装好的端口
//……
void abcd(void); // 添加所要用到此头文件的函数
//……
#endif
//以空一行结束
STEP3: 子函数(可以用来配置端口功能)
#include xxxx.h//已经写好的头文件
void abcd(形参1,形参2,…)
{
}
STEP4: 配置IO口
#include "xxxx.h"
static void ECLOCK() //外设时钟配置
{
CKCU_PeripClockConfig_TypeDef CKCUClock = {{0}};//不开启外设时钟相应功能无法使用
CCLOCK.Bit.AFIO= 1; //开启复用功能时钟
CCLOCK.Bit.PA = 1; //开启PA口时钟
CKCU_PeripClockConfig(CCLOCK, ENABLE);//使能时钟
}
static void EGPIO() //使用ht32f5xxxx_gpio.c里的库函数配置IO功能
{
AFIO_GPxConfig(GPIO_PA, AFIO_PIN_1,AFIO_MODE_DEFAULT);//设置使用PA1,为默认的IO功能DEFAULT
GPIO_DirectionConfig(HT_GPIOA, GPIO_PIN_1, GPIO_DIR_OUT);//设置IO的方向为输出,OUT为输出、IN为输入
}
STEP5: 主函数
#include "ht32.h" //这两个头文件一定要加入
#include "ht32_board.h"
//……
int main(void)
{
void ECLOCK();
void EGPIO();
//……
While(1) //死循环
{
GPIO_WriteOutBits(HT_GPIOA,GPIO_PIN_1,SET);//设置为PA1为高电平,也可以使用GPIO_SetOutBits(HT_GPIO_TypeDef*HT_GPIOx, GPIO_PIN_nBITMAP)(x为A、B、C、D,nBITMAP为0~15)
delay_ms(1000); //未定义
GPIO_WriteOutBits(HT_GPIOA,GPIO_PIN_1,RESET);// 设置为PA1为低电平,也可以使GPIO_ClearOutBits(HT_GPIOA, GPIO_PIN_1)
delay_ms(1000);
}
}
单片机的数据手册、原理图及开发板手册也包含在上面的文件中,可以下载学习。 好
页:
[1]