精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

HAL庫常用函數匯總

撞上電子 ? 2023-11-29 08:00 ? 次閱讀


1,系統(tǒng)函數

HAL_Delay

原型:void HAL_Delay(uint32_t Delay);

作用:利用滴答定時器生成的系統(tǒng)延遲函數

參數

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的狀態(tài)變成高電平或者低電平

參數:

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)翻轉

參數:

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的狀態(tài)翻轉

參數:

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函數

printf重定向

原型:int fputc(int c,FILE *stream);

作用:printf重定向

參數:系統(tǒng)參數,無需關心

返回值:系統(tǒng)參數,無需關心

示例代碼:

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ā)送數據

參數:

huart:串口號選擇

pData:發(fā)送的數據

Size:發(fā)送數據的長度

Timeout:超時時間,代表執(zhí)行函數時,最多占用串口的時間,單位是毫秒

返回值:無

示例代碼:

unsigned char str[]={"hello world"};//需要發(fā)送的數據HAL_UART_Transmit(&huart1,str,sizeof(str),100);//串口1在100ms以內發(fā)送數據

HAL_UART_Receive_IT

原型:HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart,uint8_t *pData,uint16_t Size);

作用:串口以中斷方式接收數據

參數:

huart:串口號選擇

pData:發(fā)送的數據

Size:發(fā)送數據的長度

返回值:無

示例代碼:

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);

作用:串口接收完成的中斷回調函數

參數:系統(tǒng)參數,無需關心

返回值:無

示例代碼:

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以主機模式發(fā)送數據

參數:

hi2c:IIC編號

DevAddress:寫入的地址

pData:寫入的數據

Size:寫入數據的字節(jié)數

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以阻塞模式發(fā)送數據并接收返回值

參數:

hspi:SPI編號

pTxData:寫入的數據

pRxData:讀取的數據

Size:寫入數據的字節(jié)數

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);

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4217

    瀏覽量

    61859
  • HAL
    HAL
    +關注

    關注

    2

    文章

    69

    瀏覽量

    12525
  • 系統(tǒng)
    +關注

    關注

    1

    文章

    994

    瀏覽量

    21173
收藏 人收藏

    評論

    相關推薦

    第12章-ADC采集電壓和顯示 基于STM32的ADC—電壓采集(詳細講解+HAL

    第12章-ADC采集電壓和顯示 基于STM32的ADC—電壓采集(詳細講解+HAL
    的頭像 發(fā)表于 08-21 16:31 ?246次閱讀
    第12章-ADC采集電壓和顯示 基于STM32的ADC—電壓采集(詳細講解+<b class='flag-5'>HAL</b><b class='flag-5'>庫</b>)

    手把手帶你移植HAL函數

    開發(fā)者更高效地進行嵌入式開發(fā)。手把手帶你移植HAL函數HAL提供了一套抽象接口,使開發(fā)者無需直接操作底層硬件寄存器,就能實現對硬件的控制。這種抽象使得代碼能夠更
    的頭像 發(fā)表于 05-18 08:04 ?887次閱讀
    手把手帶你移植<b class='flag-5'>HAL</b>庫<b class='flag-5'>函數</b>

    老版本的TIM_SetCompare2(TIM2, TIMCompare2);函數,在HAL里面對應的是那個函數

    老版本的TIM_SetCompare2(TIM2, TIMCompare2);函數,在HAL里面對應的是那個函數? 老版本的TIM_Se
    發(fā)表于 05-15 06:09

    HAL的串口收發(fā)函數HAL的串口DMA方式下不能實現獨立的全雙工通信嗎?

    昨天看HAL的串口收發(fā)函數,DMA方式,發(fā)現函數里竟然有收發(fā)同步的操作,但不太確定,莫非HAL的串口DMA方式下不能實現獨立的全雙工通信么
    發(fā)表于 05-14 06:17

    求助,關于HALHAL_UART_Receive使用問題求解

    各位好,我在使用HALHAL_UART_Receive()函數時遇到了這樣的問題,在第一次使用HAL_UART_Receive()進行接
    發(fā)表于 04-10 07:25

    函數硬件nss有使能spi函數SPI_Cmd(),但是HAL沒有找到,怎么使用硬件NSS呢?

    函數硬件nss有使能spi函數SPI_Cmd(),但是HAL沒有找到,怎么使用硬件NSS呢? 以及主機選擇硬件nss怎么片選從機?是直接發(fā)送不用管嘛? 從機選擇硬件nss怎么接收數
    發(fā)表于 03-28 10:01

    STM32G HALHAL_init()代碼中,為什么SysTick_Config函數不調用?

    STM32G HALHAL_init()代碼中,為什么SysTick_Config函數不調用?
    發(fā)表于 03-12 07:46

    stm32f1如何將外部中斷關掉hal

    Layer)來簡化芯片和外設的驅動開發(fā)。在STM32F1中,外部中斷的關閉是通過HAL中的相應函數來實現的。下面我將詳細介紹如何使用HAL
    的頭像 發(fā)表于 12-22 13:52 ?2272次閱讀

    使用STM32 HAL進行GPIO控制的實例

    在基于STM32微控制器的嵌入式系統(tǒng)開發(fā)中,GPIO(GeneralPurposeInput/Output)控制是其中最基本、最常見的操作之一。通過使用STM32的HAL,可以輕松地對GPIO進行配置和控制。本文將演示如何使用STM32
    的頭像 發(fā)表于 12-21 15:22 ?1951次閱讀

    STM32的HAL和LL到底能不能混合使用呢?

    STM32的HAL和LL到底能不能混合使用呢? STM32的HAL(Hardware Abstraction Layer)和LL(Low Level)是ST公司為快速開發(fā)STM32
    的頭像 發(fā)表于 10-26 17:42 ?1222次閱讀

    STM32 HAL串口同時收發(fā),接收卡死?

    HAL是針對STM32系列單片機的一套常用的高級抽象層。在HAL中,串口通信是通過針對U
    的頭像 發(fā)表于 10-26 17:42 ?3007次閱讀

    STM32 HAL串口收發(fā)是如何使用的?

    STM32 HAL串口收發(fā)是如何使用的? STM32是一款高性能的微控制器,它擁有廣泛的應用領域,其中包括了各種通訊應用,如UART串口通訊。HAL是ST公司為了方便開發(fā)者使用ST
    的頭像 發(fā)表于 10-26 17:42 ?1009次閱讀

    STM32 HALI2C讀寫操作筆記

    I2C寫數據時用HAL_I2C_Master_Transmit 函數函數參數信息如下
    的頭像 發(fā)表于 10-26 11:05 ?3613次閱讀
    STM32 <b class='flag-5'>HAL</b><b class='flag-5'>庫</b>I2C讀寫操作筆記

    STM32基于HAL實現微秒延時

    HAL只提供了ms級的延時,但有些特殊場景,比如與通信速率較慢的設備通信時,會需要用到us級延時。STM32標準一般是使用系統(tǒng)嘀嗒定時器來進行微妙級別的延時,而HAL將SysTic
    的頭像 發(fā)表于 10-25 15:31 ?3824次閱讀
    STM32基于<b class='flag-5'>HAL</b><b class='flag-5'>庫</b>實現微秒延時

    ST的LL函數接口是和HAL兼容的嗎?

    ST 的LL函數接口是和HAL兼容的嗎
    發(fā)表于 10-11 06:45