1,系統(tǒng)函數(shù)
HAL_Delay
原型:void HAL_Delay(uint32_t Delay);
作用:利用滴答定時器生成的系統(tǒng)延遲函數(shù)
參數(shù):
Delay:延遲時間,單位是ms
返回值:無
示例代碼:
HAL_Delay(50);//延遲50ms
2,GPIO函數(shù)
原型:void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
作用:使得某一個GPIO的Pin的狀態(tài)變成高電平或者低電平
參數(shù):
GPIOx:引腳選擇
GPIO_Pin:引腳編號選擇
PinState:引腳狀態(tài)設置
返回值:無
示例代碼:
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的狀態(tài)翻轉
參數(shù):
GPIOx:引腳選擇
GPIO_Pin:引腳編號選擇
返回值:無
示例代碼:
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_15);//設置PB15引腳翻轉,如果原先是低電平,現(xiàn)在就是高電平;如果原先是高電平,現(xiàn)在就是低電平。
HAL_GPIO_ReadPin
原型:GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
作用:讀取某一個GPIO的Pin的狀態(tài)翻轉
參數(shù):
GPIOx:引腳選擇
GPIO_Pin:引腳編號選擇
返回值:某一個GPIO的Pin的狀態(tài)。
GPIO_PIN_SET:當前狀態(tài)為高電平
GPIO_PIN_RESET:當前狀態(tài)為低電平
示例代碼:
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函數(shù)
printf重定向
原型:int fputc(int c,FILE *stream);
作用:printf重定向
參數(shù):系統(tǒng)參數(shù),無需關心
返回值:系統(tǒng)參數(shù),無需關心
示例代碼:
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);
作用:串口以阻塞式發(fā)送數(shù)據
參數(shù):
huart:串口號選擇
pData:發(fā)送的數(shù)據
Size:發(fā)送數(shù)據的長度
Timeout:超時時間,代表執(zhí)行函數(shù)時,最多占用串口的時間,單位是毫秒
返回值:無
示例代碼:
unsigned char str[]={"hello world"};//需要發(fā)送的數(shù)據HAL_UART_Transmit(&huart1,str,sizeof(str),100);//串口1在100ms以內發(fā)送數(shù)據
HAL_UART_Receive_IT
原型:HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart,uint8_t *pData,uint16_t Size);
作用:串口以中斷方式接收數(shù)據
參數(shù):
huart:串口號選擇
pData:發(fā)送的數(shù)據
Size:發(fā)送數(shù)據的長度
返回值:無
示例代碼:
unsigned char str[1];//接收數(shù)據存放位置HAL_UART_Receive_IT(&huart1,str,1);//串口接收數(shù)據 //串口接收完成的中斷回調函數(shù)void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){ if(str[0]==0x80)//判斷接收的數(shù)據是否為0x80 HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);//翻轉PB5電平}
HAL_UART_RxCpltCallback
原型:__weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);
作用:串口接收完成的中斷回調函數(shù)
參數(shù):系統(tǒng)參數(shù),無需關心
返回值:無
示例代碼:
unsigned char str[1];//接收數(shù)據存放位置HAL_UART_Receive_IT(&huart1,str,1);//串口接收一個數(shù)據 //串口接收完成的中斷回調函數(shù)void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){ if(str[0]==0x80)//判斷接收的數(shù)據是否為0x80 HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);//翻轉PB5電平}
3,IIC函數(shù)
HAL_I2C_Master_Transmit
原型:HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout);
作用:IIC以主機模式發(fā)送數(shù)據
參數(shù):
hi2c:IIC編號
DevAddress:寫入的地址
pData:寫入的數(shù)據
Size:寫入數(shù)據的字節(jié)數(shù)
Timeout 最大傳輸時間,超過傳輸時間將自動退出傳輸函數(shù)
返回值:無
示例代碼:
uint16_t Address=0x1234;uint8_t TxData[2]={0x11,0x22}; //在100ms以內,使用IIC1,采用主機模式,向地址0x1234寫入數(shù)據0x11和0x22 HAL_I2C_Master_Transmit(&hi2c1,I2C1_WRITE_ADDRESS,(uint8_t*)TxData,2,100);
4,SPI函數(shù)
HAL_SPI_TransmitReceive
原型:HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout);
作用:SPI以阻塞模式發(fā)送數(shù)據并接收返回值
參數(shù):
hspi:SPI編號
pTxData:寫入的數(shù)據
pRxData:讀取的數(shù)據
Size:寫入數(shù)據的字節(jié)數(shù)
Timeout:最大傳輸時間,超過傳輸時間將自動退出函數(shù)
返回值:無
示例代碼:
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);
-
函數(shù)
+關注
關注
3文章
4421瀏覽量
67815 -
HAL
+關注
關注
2文章
75瀏覽量
13732 -
系統(tǒng)
+關注
關注
1文章
1047瀏覽量
22394
發(fā)布評論請先 登錄
《機智云Gokit3開發(fā)篇》4 RGB燈的介紹與驅動移植(HAL庫)
嵌入式開發(fā)常用函數(shù)速查表
立即在GitHub上搶先體驗面向STM32U5的最新STM32Cube HAL更新
HTTP開發(fā)必備:核心庫與httpplus擴展庫應用示例全攻略
在rtthread的main函數(shù)里用HAL_Delay函數(shù)不起作用是哪里的問題?
詳解hal_entry入口函數(shù)
SPI+DMA一直發(fā)會進入HAL_BUSY無法跳出是怎么回事?
自己寫庫:構建庫函數(shù)雛形
MSP430常用內聯(lián)函數(shù)說明
基于STM32 HAL庫與標準庫的esp8266接入機智云方案(二)
HAL庫常用函數(shù)匯總
評論