完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
合泰32位单片机入门/以HT32F52352为例
Hi!很高兴看到你。以前经常在CSDN上查找资料,经常能找到想要的,因此也希望在此分享自己的学习心得与收获。32位的单片机其实都差不多,很多内核都是ARM系列,只是不同公司用的外设有些不一样,包括一些端口、库函数。之前有接触过STM32,但是不够深入,本文以HT32F52352为例,说明如果开始一个工程的简单配置。希望能帮助到一些初学者,如有错误请提出指正。 步骤 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); } } 单片机的数据手册、原理图及开发板手册也包含在上面的文件中,可以下载学习。 今后将不定期分享自己的学习收获。 |
|
|
|
只有小组成员才能发言,加入小组>>
2481 浏览 0 评论
1052浏览 2评论
666浏览 1评论
432浏览 0评论
168浏览 0评论
271浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 00:24 , Processed in 1.175027 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号