色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

HAL庫常用函數匯總

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


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

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

    關注

    3

    文章

    4361

    瀏覽量

    63595
  • HAL
    HAL
    +關注

    關注

    2

    文章

    71

    瀏覽量

    12881
  • 系統
    +關注

    關注

    1

    文章

    1024

    瀏覽量

    21615
收藏 0人收藏

    評論

    相關推薦

    如何將HAL轉為LL

    怎么將HAL轉為LL
    發表于 03-10 06:08

    HAL在Arduino平臺上的使用

    HAL在Arduino平臺上的使用 Arduino平臺是一個開源的電子原型平臺,它包括硬件(基于微控制器的電路板)和軟件(Arduino IDE)。Arduino平臺因其簡單易用而受到廣泛歡迎
    的頭像 發表于 12-02 14:04 ?1055次閱讀

    HAL和標準的區別 HAL與CMSIS的關系

    在嵌入式系統開發中,HAL(硬件抽象層)和標準是兩種常用的軟件,它們在功能和使用場景上有所不同。 1. 標準
    的頭像 發表于 12-02 14:02 ?2440次閱讀

    HAL函數調用示例

    HAL(Hardware Abstraction Layer,硬件抽象層)是STM32等微控制器中常用,它為開發者提供了訪問和控制硬件設備的接口。以下是一些
    的頭像 發表于 12-02 14:01 ?1120次閱讀

    HAL在STM32開發中的重要性

    開發過程 HAL提供了一套完整的函數接口,用于操作STM32微控制器的各種外設和功能模塊。這些函數接口封裝了底層硬件的復雜性,使得開發者無需深入了解硬件細節即可實現功能。因此,
    的頭像 發表于 12-02 13:35 ?969次閱讀

    如何快速入門HAL編程 HAL與裸機編程的比較

    如何快速入門HAL編程 要快速入門HAL編程,可以遵循以下步驟: 了解基礎知識 : 掌握C語言編程基礎,包括變量、數據類型、函數、指針等
    的頭像 發表于 12-02 11:39 ?820次閱讀

    HAL在嵌入式系統中的應用

    HAL(Hardware Abstraction Layer Library,硬件抽象層)在嵌入式系統中扮演著至關重要的角色。以下是HAL
    的頭像 發表于 12-02 11:32 ?1458次閱讀

    常用SQL函數及其用法

    SQL(Structured Query Language)是一種用于管理和操作關系數據的編程語言。SQL 提供了豐富的函數庫,用于數據檢索、數據更新、數據刪除以及數據聚合等操作。以下是一些常用
    的頭像 發表于 11-19 10:18 ?914次閱讀

    labview常用的基本函數

    電子發燒友網站提供《labview常用的基本函數.pdf》資料免費下載
    發表于 10-15 17:29 ?7次下載

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

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

    手把手帶你移植HAL函數

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

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

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

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

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

    請問hal的串口接收完成回調函數中如何區分是不是DMA接收完成?

    HAL_UART_RxCpltCallback 這個回調函數在串口中斷接收完成后會被調用,在DMA接收完成后也會被調用 那么能否在這個回調函數中直接以參數huart中的信息來區分上述兩種情況呢
    發表于 05-07 07:39

    使用HALSPI讀不到數據的原因?

    一直是locked 不知道為什么會出現lock之后沒有unlock的情況 因為程序同時只會有一個地方調用SPI函數,所以我在每次發送前將state和lock的值修改了 這樣修改之后就沒有再出問題了 HAL研究不深,不知道這是B
    發表于 04-26 07:41
    主站蜘蛛池模板: 嫩草影院地址一地址二 | 一区精品在线 | 无码专区无码专区视频网网址 | 久久精品视频91 | 羞羞麻豆国产精品1区2区3区 | 老司机深夜福利ae 入口网站 | 免费在线观看的毛片 | 免费国产综合视频在线看 | 国产精品久久久久久久久无码 | 邪恶肉肉全彩色无遮盖 | 777ZYZ玖玖资源站最稳定网址 | 一级毛片免费视频网站 | BLACKED太粗太长 | 中文字幕不卡在线视频 | 农民工老头在出租屋嫖老熟女 | 国产精品青草久久福利不卡 | 好紧好湿太硬了我太爽了小说 | 欧洲-级毛片内射八十老太婆 | 人妻 中文无码 中出 | 免费A级毛片无码无遮挡内射 | 岛国精品在线观看 | 91精品在线国产 | 最近更新2019中文字幕国语 | 日本福利片午夜免费观着 | 26uuu老色哥 259luxu高跟黑色丝袜系列 | 欧洲xxxxx | RUNAWAY韩国动漫免费网 | 欧美性动漫3d在线观看完整版 | 丰满五十六十老熟女HD60 | 成人性生交大片免费看中文 | 最近日本MV字幕免费观看视频 | 久久久青青 | 久久精品亚洲国产AV涩情 | 啊…嗯啊好深男男小黄文 | 素人约啪第五季 | 国产午夜精品一区二区 | 欧美日韩精品 | 草莓视频在线播放视频 | 久久影院中文字幕 | 午夜理论片日本中文在线 | 狠狠色色综合网站 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品