当前位置:   article > 正文

HT32基本外设使用

ht32

1. LEDBlink

HT32的点灯函数,自行跟HAL库对应
GPIO_WriteOutBits(HT_GPIOC,GPIO_PIN_14,RESET);

2. USART

2.1 重定向

HT32init生成的工程文件中,是有重定向这个文件的,所以我们只需要引用其中的接口函数即可
RETARGET_Configuration();//重定向初始化
PS: 注意如果重定向失败的话也许是串口的宏定义不对应
在这里插入图片描述
因为最小系统板上的串口跟elink32连接的是串口1,所以这里的要选择COM1,但是不知道为什么我初始化了串口1之后还是给我默认是COM0
在这里插入图片描述
在这里插入图片描述
我们找到它的定义可以看到是10,而COM0是13
在这里插入图片描述
或者在初始化的时候勾选这个选项即可
(2022/3/23编辑)

在初始化工程的时候,最好不勾选作为重定向端口了,因为这样他会帮你写好串口中断的函数,并且开启中断,我们只需要像上面说的一样去修改com的值也可也作为重定向端口可以用printf
在这里插入图片描述
(编辑结束)

(2022年3月31日编辑)
需要注意的是,HT官方给的那块HTF52352的板子的排针上的A5是空的过孔,我们看他的原理图会发现都没有这个网络在那,所以使用A4和A5作为USART1的引脚时,记得链接板子中间那个跳线帽的A5才是有效的。
(编辑结束)

3. Delay

3.1 delay.h

#ifndef __DELAY_H
#define __DELAY_H 			   
#include "ht32_cm0plus_misc.h"
void delay_s(u16 s);
void delay_ms(u16 ms);
void delay_us(u32 us);
#endif
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.2 delay.c

#include "delay.h"
//mS微秒级延时程序
void delay_us(u32 us)
{
	u32 i;
	SYSTICK_ClockSourceConfig(SYSTICK_SRC_STCLK);          //选择外部参考时钟作为SysTick时钟源。8MHZ
	SYSTICK_SetReloadValue(SystemCoreClock / 8 / 1000000); // 重装计数初值
	SYSTICK_IntConfig(DISABLE);                            // 是否开启中断
	SYSTICK_CounterCmd(SYSTICK_COUNTER_CLEAR);             //清空定时器
	SYSTICK_CounterCmd(SYSTICK_COUNTER_ENABLE);            //使能
	for( i = 0;i < us;i++ )
	{
		while( !( (SysTick->CTRL) & (1<<16) ) ); 
	}
 
	SYSTICK_CounterCmd(SYSTICK_COUNTER_DISABLE); //关闭
	SYSTICK_CounterCmd(SYSTICK_COUNTER_CLEAR);	 //复位清零
}

void delay_ms(u16 ms){ //mS毫秒级延时程序 	  
	while( ms-- != 0){
		delay_us(1000);	//调用1000微秒的延时
	}
}
 
void delay_s(u16 s){ //S秒级延时程序	 		  	  
	while( s-- != 0){
		delay_ms(1000);	//调用1000毫秒的延时
	}
} 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

3.3 参考资料

HT32F5232学习之利用dealy延时函数实现呼吸灯效果

4. SPI

4.1 库函数和HAL库对应

  • SPI发送接收数据
    u16 SPI1_MASTER_SendByte(u8 byte)//HT32
    HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size,uint32_t Timeout)//STM32

5. TIM

5.1 Interrupt

5.1.1 HT32init配置

在这里插入图片描述

5.1.2 接口函数

在这里插入图片描述
在对应的中断函数中编写业务代码即可
中断的开启NVIC_EnableIRQ(GPTM0_IRQn); // interrupt enable

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/565953
推荐阅读
相关标签
  

闽ICP备14008679号