合泰32位单片机入门/以HT32F52352为例

合泰32位单片机入门/以HT32F52352为例

Hi!很高兴看到你。以前经常在CSDN上查找资料,经常能找到想要的,因此也希望在此分享自己的学习心得与收获。32位的单片机其实都差不多,很多内核都是ARM系列,只是不同公司用的外设有些不一样,包括一些端口、库函数。之前有接触过STM32,但是不够深入,本文以HT32F52352为例,说明如果开始一个工程的简单配置。希望能帮助到一些初学者,如有错误请提出指正。(HT32F52352例程下载https://download.csdn.net/download/a_13290783356/11490501)

步骤

STEP1: 新建工程 (建议直接使用例程修改)

STEP2: 头文件

#ifndef _xxxx_H
#define _xxxx_H
#include "ht32f5xxxx_01.h"        //调用此头文件可以使用一些已经封装好的端口
#define xxx  yyy   //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); 
  } 
}                                

单片机的数据手册、原理图及开发板手册也包含在上面的文件中,可以下载学习。
今后将不定期分享自己的学习收获。

你可能感兴趣的:(合泰32位单片机入门/以HT32F52352为例)