完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本人从STM32单片机过渡到合泰单片机,是一个小白,在32单片机学习也不够透彻,想通过此次学习写下自己的一些见解,关于有关合泰单片机的相关参考资料下载和软件安装和使用可参考这位博主HT32F52352单片机学习笔记(一)
接下来如何点亮LED呢? 一、参照资料 1、将固件包下载好 里面有对GPIO和AFIO的配置函数 由于我们是要点亮LED1和LED2,所以要对其引脚进行配置,而配置引脚之前,要先使能外设时钟 引脚图 关于所对应的引脚可以从下载好的原理图查到, 二、程序及其原理 点亮LED灯实际上是对GPIO和AFIO的配置,一般步骤为: 1、启用AFIO外设时钟 2、、配置WAKEUP,KEY1,KEY2引脚作为输入函数 (1)启用输入管脚的GPIO外设时钟 (2)配置输入管脚的AFIO模式 (3)配置输入引脚的GPIO方向 3、配置LED1,LED2,LED3引脚作为输出功能 (1)启用输出管脚的GPIO外设时钟 (2)配置输出引脚的AFIO模式 (3)配置输出引脚的GPIO方向 4、无限循环从输入引脚读取数据,然后输出到LED (1)读取唤醒,然后通过LED1输出 (2)读取KEY1,然后通过LED2输出 (3)读取KEY2,然后通过LED2输出 我们只需要启用外设时钟、配置输出功能和读取其数据便可实现点亮LED功能 led.c #include void led_init(void) { CKCU_PeripClockConfig_TypeDef LEDClock = {{ 0 }}; //不开启外设时钟相应功能无法使用 LEDClock.Bit.PC = 1; //开启PC时钟 LEDClock.Bit.AFIO = 1; //开启复用功能时钟 CKCU_PeripClockConfig(LEDClock, ENABLE); //使能时钟 GPIO_DirectionConfig(HT_GPIOC, GPIO_PIN_14, GPIO_DIR_OUT); //配置GPIO口 GPIO_DirectionConfig(HT_GPIOC, GPIO_PIN_15, GPIO_DIR_OUT); } led.h //#ifndef __LED_H_ //#define __LED_H_ //#include "ht32f5xxxx_ckcu.h" //#include "ht32f5xxxx_gpio.h" //void led_init(void); //#endif 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_ms(1000); GPIO_WriteOutBits(HT_GPIOC,LED1_PIN,RESET); GPIO_WriteOutBits(HT_GPIOC,LED2_PIN,SET); delay_ms(1000); } } 以上代码可以实现跑马灯的效果 |
|
|
|
只有小组成员才能发言,加入小组>>
3322 浏览 9 评论
3000 浏览 16 评论
3497 浏览 1 评论
9070 浏览 16 评论
4090 浏览 18 评论
1191浏览 3评论
613浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
603浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2341浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1899浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 21:16 , Processed in 0.968950 second(s), Total 48, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号