HAL库常用函数汇总

1,系统函数
hal_delay
原型:void hal_delay(uint32_t delay);
作用:利用滴答定时器生成的系统延迟函数
参数:
   delay:延迟时间,单位是ms
返回值:无
示例代码:
 hal_delay(50);//延迟50ms
2,gpio函数
hal_gpio_writepin
原型:void hal_gpio_writepin(gpio_typedef *gpiox, uint16_t gpio_pin, gpio_pinstate pinstate);
作用:使得某一个gpio的pin的状态变成高电平或者低电平
参数:  
   gpiox:引脚选择
   gpio_pin:引脚编号选择
   pinstate:引脚状态设置
返回值:无
示例代码:
 hal_gpio_writepin(gpiob,gpio_pin_15,gpio_pin_set);//设置pb15引脚为高电平hal_delay(500);//延时500mshal_gpio_writepin(gpiob,gpio_pin_15,gpio_pin_reset);//设置pb15引脚为低电平hal_delay(500);//延时500ms
hal_gpio_togglepin
原型:void hal_gpio_togglepin(gpio_typedef *gpiox, uint16_t gpio_pin);
作用:使得某一个gpio的pin的状态翻转
参数:  
   gpiox:引脚选择
   gpio_pin:引脚编号选择    
返回值:无
示例代码:
 hal_gpio_togglepin(gpiob,gpio_pin_15);//设置pb15引脚翻转,如果原先是低电平,现在就是高电平;如果原先是高电平,现在就是低电平。
hal_gpio_readpin
原型:gpio_pinstate hal_gpio_readpin(gpio_typedef *gpiox, uint16_t gpio_pin);
作用:读取某一个gpio的pin的状态翻转
参数:  
   gpiox:引脚选择
   gpio_pin:引脚编号选择
返回值:某一个gpio的pin的状态。
   gpio_pin_set:当前状态为高电平
   gpio_pin_reset:当前状态为低电平
示例代码:
 if(hal_gpio_readpin(gpiob,gpio_pin_15)==gpio_pin_reset)//判断pb15为低电平  hal_gpio_writepin(gpiob,gpio_pin_14,gpio_pin_set);//设置pb14引脚为高电平
3,uart函数
printf重定向
原型:int fputc(int c,file *stream);
作用:printf重定向
参数:系统参数,无需关心
返回值:系统参数,无需关心
示例代码:
 int fputc(int c,file *stream)//需要引用头文件:stdio.h{ hal_uart_transmit(&huart1,(uint8_t *)&c,1,100);//注意,这里重定向是串口1 return c;}
hal_uart_transmit
原型:hal_statustypedef hal_uart_transmit(uart_handletypedef *huart,uint8_t *pdata,uint16_t size,uint32_t timeout);
作用:串口以阻塞式发送数据
参数:
   huart:串口号选择
   pdata:发送的数据
   size:发送数据的长度
   timeout:超时时间,代表执行函数时,最多占用串口的时间,单位是毫秒
返回值:无
示例代码:
  unsigned char str[]={hello world};//需要发送的数据hal_uart_transmit(&huart1,str,sizeof(str),100);//串口1在100ms以内发送数据
hal_uart_receive_it
原型:hal_statustypedef hal_uart_receive_it(uart_handletypedef *huart,uint8_t *pdata,uint16_t size);
作用:串口以中断方式接收数据
参数:
   huart:串口号选择
   pdata:发送的数据
   size:发送数据的长度
返回值:无
示例代码:
 unsigned char str[1];//接收数据存放位置hal_uart_receive_it(&huart1,str,1);//串口接收数据 //串口接收完成的中断回调函数void hal_uart_rxcpltcallback(uart_handletypedef *huart){ if(str[0]==0x80)//判断接收的数据是否为0x80 hal_gpio_togglepin(led0_gpio_port,led0_pin);//翻转pb5电平}
hal_uart_rxcpltcallback
原型:__weak void hal_uart_rxcpltcallback(uart_handletypedef *huart);
作用:串口接收完成的中断回调函数
参数:系统参数,无需关心
返回值:无
示例代码:
 unsigned char str[1];//接收数据存放位置hal_uart_receive_it(&huart1,str,1);//串口接收一个数据 //串口接收完成的中断回调函数void hal_uart_rxcpltcallback(uart_handletypedef *huart){ if(str[0]==0x80)//判断接收的数据是否为0x80 hal_gpio_togglepin(led0_gpio_port,led0_pin);//翻转pb5电平}
3,iic函数
hal_i2c_master_transmit
原型:hal_i2c_master_transmit(i2c_handletypedef *hi2c, uint16_t devaddress, uint8_t *pdata, uint16_t size, uint32_t timeout);
作用:iic以主机模式发送数据
参数:
   hi2c:iic编号
   devaddress:写入的地址
   pdata:写入的数据
   size:写入数据的字节数
   timeout 最大传输时间,超过传输时间将自动退出传输函数
返回值:无
示例代码:
     uint16_t address=0x1234;uint8_t txdata[2]={0x11,0x22}; //在100ms以内,使用iic1,采用主机模式,向地址0x1234写入数据0x11和0x22 hal_i2c_master_transmit(&hi2c1,i2c1_write_address,(uint8_t*)txdata,2,100);
4,spi函数
hal_spi_transmitreceive
原型:hal_spi_transmitreceive(spi_handletypedef *hspi, uint8_t *ptxdata, uint8_t *prxdata, uint16_t size, uint32_t timeout);
作用:spi以阻塞模式发送数据并接收返回值
参数:
   hspi:spi编号
   ptxdata:写入的数据
   prxdata:读取的数据
   size:写入数据的字节数
   timeout:最大传输时间,超过传输时间将自动退出函数
返回值:无
示例代码:
     uint8_t txdata[2]={0x11,0x22};uint8_t rxdata[2]; //在100ms以内,使用spi1,写入0x11和0x22,并等待接收的返回值hal_spi_transmitreceive(&spi1,(uint8_t*)txdata,(uint8_t*)txdata,2,100);

NTC热敏电阻的五种封装形式
ImPosing:用于视觉定位的隐式姿态编码
没人再会说比特币将死亡
亚洲第一家掌握AI 3D感知全领域技术的奥比中光拟上市
探索TWS蓝牙耳机的技术奥秘
HAL库常用函数汇总
iPhone 8将新增全身纯白色?简直美爆,小米华为黯然神伤
IBM被评为“2020年全球最具商业道德企业之一”
AC-DC开关电源芯片作用
两个运算放大器电流源的基本操作
英特尔为5G提供云网端的解决方案愿与合作伙伴同共谋5G的发展
推导正弦波正弦量、平均值、有效值基本公式
红米笔记本RedmiBook14高清图赏
表面粗糙度对机械产品的影响
斥资5亿美元,苹果要在游戏产业大展拳脚!
基于RBF神经网络芯片技术ZISC实现模式识别系统的应用方案研究
5G时代运营商应该共谋发展追求双赢的商业模式
商务部:巩固新能源汽车市场增长势头
千里之行,始于代码:未来汽车差异化发展之路
VB脚本在西门子KP1200HMI中的应用