国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32HAL庫常用庫函數(shù)說明

這篇具有很好參考價值的文章主要介紹了STM32HAL庫常用庫函數(shù)說明。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

系統(tǒng)函數(shù)

HAL_Delay(延時函數(shù))

  • 函數(shù)原型:
void HAL_Delay(uint32_t Delay);
參數(shù) 說明
Delay 延時時間
數(shù)據(jù)類型:unsigned int 32位
返回值 無返回值

GPIO

HAL_GPIO_WritePin(GPIO引腳電平設(shè)置)

  • 函數(shù)原型:
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
參數(shù) 說明
*GPIOx 引腳選澤,參數(shù)范圍:GPIOA~GPIOC等
GPIO_Pin 引腳編號選擇,參數(shù)范圍:GPIO_PIN_0~GPIO_PIN_15等
PinState 引腳狀態(tài)設(shè)置,參數(shù)范圍:GPIO_PIN_SET:高電平
GPIO_PIN_RESET:低電平
返回值 無返回值
  • 應(yīng)用舉例
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_SET);//設(shè)置PB15引腳為高電平
HAL_Delay(500);//延時500ms
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//設(shè)置PB15引腳為低電平
HAL_Delay(500);//延時500ms

HAL_GPIO_TogglePin(GPIO電平翻轉(zhuǎn))

  • 函數(shù)原型:
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
參數(shù) 說明
*GPIOx 引腳選澤,參數(shù)范圍:GPIOA~GPIOC等
GPIO_Pin 引腳編號選擇,參數(shù)范圍:GPIO_PIN_0~GPIO_PIN_15等
返回值 無返回值
  • 應(yīng)用舉例
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_15);//翻轉(zhuǎn)GPIO引腳電平
HAL_Delay(500);//延時500ms

HAL_GPIO_ReadPin(獲取GPIO引腳狀態(tài))

  • 函數(shù)原型:
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
參數(shù) 說明
*GPIOx 引腳選澤,參數(shù)范圍:GPIOA~GPIOC等
GPIO_Pin 引腳編號選擇,參數(shù)范圍:GPIO_PIN_0~GPIO_PIN_15等
返回值 返回GPIO狀態(tài)
GPIO_PIN_SET:當(dāng)前狀態(tài)為高電平
GPIO_PIN_RESET:當(dāng)前狀態(tài)為低電平
  • 應(yīng)用舉例
if(HAL_GPIO_ReadPin(GPIOB,KEY1_Pin)==GPIO_PIN_RESET){//判斷PB15引腳是否為低電平
	HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_SET);//設(shè)置PB14引腳為高電平
}else{
	HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_RESET);//設(shè)置PB14引腳為低電平
}

Timer

HAL_TIM_Base_Start_IT(打開定時器)

  • 函數(shù)原型:
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim);
參數(shù) 說明
*htim 定時器選擇,范圍:&htim1~&htim8等
  • 應(yīng)用舉例:
HAL_TIM_Base_Start_IT(&htim2);//開啟定時器2中斷

HAL_TIM_Base_Stop_IT(關(guān)閉定時器中斷)

  • 函數(shù)原型:
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim);
參數(shù) 說明
*htim 定時器選擇,范圍:&htim1~&htim8等
  • 應(yīng)用舉例:
  HAL_TIM_Base_Stop_IT(&htim2);//關(guān)閉定時器2中斷

USART(串口)

HAL_UART_Transmit(阻塞式發(fā)送函數(shù))

  • 函數(shù)原型:
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart,uint8_t *pData,uint16_t Size,uint32_t Timeout);
參數(shù) 說明
*huart 串口選擇,范圍:&huart1~&huart3等
*pData 發(fā)送的數(shù)據(jù)
Size 發(fā)送數(shù)據(jù)的長度
Timerout 超時時間
  • 應(yīng)用舉例
unsigned char str[]={"hello world"};//需要發(fā)送的數(shù)據(jù)

HAL_UART_Transmit(&huart1,str,sizeof(str),100);//串口發(fā)送數(shù)據(jù)

HAL_UART_Transmit_IT(非阻塞式發(fā)送函數(shù))

  • 函數(shù)原型:
HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart,uint8_t *pData,uint16_t Size);
參數(shù) 說明
*huart 串口選擇,范圍:&huart1~&huart3等
*pData 發(fā)送的數(shù)據(jù)
Size 發(fā)送數(shù)據(jù)的長度
  • 應(yīng)用舉例:
unsigned char str[]={"hello world"};//需要發(fā)送的數(shù)據(jù)
HAL_UART_Transmit_IT(&huart1,str,sizeof(str)100);//串口發(fā)送數(shù)據(jù)


//串口發(fā)送完畢回調(diào)函數(shù)
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart){
  if(huart->Instance==USART1){//判斷是否是串口1產(chǎn)生的中斷
    HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);//翻轉(zhuǎn)PB5電平
  }
}

HAL_UART_Receive(阻塞式接收函數(shù))——不推薦使用

  • 函數(shù)原型:
HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart,uint8_t *pData,uint16_t Size,uint32_t Timeout);
參數(shù) 說明
*huart 串口選擇,范圍:&huart1~&huart3等
*pData 接收的數(shù)據(jù)存放位置
Size 需要接收的長度
Timerout 超時時間
  • 應(yīng)用舉例:
unsigned char str[1];//接收數(shù)據(jù)存放位置
HAL_UART_Receive(&huart1,str,1);//串口接收數(shù)據(jù)

HAL_UART_Receive_IT(非阻塞式接收函數(shù))

  • 函數(shù)原型:
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart,uint8_t *pData,uint16_t Size);
參數(shù) 說明
*huart 串口選擇,范圍:&huart1~&huart3等
*pData 接收的數(shù)據(jù)存放位置
Size 需要接收的長度
  • 應(yīng)用舉例:
unsigned char str[1];//接收數(shù)據(jù)存放位置
HAL_UART_Receive_IT(&huart1,str,1);//串口接收數(shù)據(jù)


//串口接收完畢回調(diào)函數(shù)
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){
  if(huart->Instance==USART1){//判斷是否為串口1產(chǎn)生中斷
    if(str[0]==0x80){//判斷接收的數(shù)據(jù)是否為0x80
      HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);//翻轉(zhuǎn)PB5電平
    }
  }
}

printf重定向

  • 在開始修改代碼之前我們需要引用頭文件:stdio.h
  • 修該fputc函數(shù)
int fputc(int c,FILE *stream){
  HAL_UART_Transmit(&huart1,(uint8_t *)&c,1,100);
  return c;
}

ADC

HAL_ADC_Start(阻塞式ADC轉(zhuǎn)換開始)

  • 函數(shù)原型:
HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc);
參數(shù) 說明
*hadc ADC選擇,范圍:&hadc1~&hadc3等

HAL_ADC_Stop(阻塞式ADC轉(zhuǎn)換停止)

  • 函數(shù)原型:
HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef* hadc);
參數(shù) 說明
*hadc ADC選擇,范圍:&hadc1~&hadc3等

HAL_ADC_Start_IT(非阻塞式ADC轉(zhuǎn)換開始)

  • 函數(shù)原型:
HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef* hadc);
參數(shù) 說明
*hadc ADC選擇,范圍:&hadc1~&hadc3等

HAL_ADC_Stop_IT(非阻塞式ADC轉(zhuǎn)換停止)

  • 函數(shù)原型:
HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc);
參數(shù) 說明
*hadc ADC選擇,范圍:&hadc1~&hadc3等

HAL_ADC_PollForConversion(等待常規(guī)組轉(zhuǎn)換完成)

  • 函數(shù)原型:
HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout)
參數(shù) 說明
*hadc ADC選擇,范圍:&hadc1~&hadc3等
Timeout 超時時間
返回值 狀態(tài)
HAL_ERROR:錯誤
HAL_TIMEOUT:超時
HAL_OK:轉(zhuǎn)換完成

HAL_ADC_GetValue(獲取ADC轉(zhuǎn)換結(jié)果)

  • 函數(shù)原型:
uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc);
參數(shù) 說明
*hadc ADC選擇,范圍:&hadc1~&hadc3等
返回值 ADC轉(zhuǎn)換結(jié)果

ADC單通道應(yīng)用舉例

//阻塞式
HAL_ADC_Start(&hadc1);//開始ADC轉(zhuǎn)換
if(HAL_OK==HAL_ADC_PollForConversion(&hadc1,10)){//判斷是否轉(zhuǎn)換成功
	ADC_value=HAL_ADC_GetValue(&hadc1);//獲取ADC轉(zhuǎn)換值
   	printf("當(dāng)前采集值為:%d\r\n",ADC_value);//串口輸出值
}


//非阻塞式
HAL_ADC_Start_IT(&hadc1);//開始ADC轉(zhuǎn)換

//ADC的中斷回調(diào)函數(shù)
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc){
  if(hadc->Instance==ADC1){//判斷是否為ADC1產(chǎn)生的中斷
    ADC_value=HAL_ADC_GetValue(&hadc1);//獲取ADC轉(zhuǎn)換值
    printf("當(dāng)前值:%d\r\n",ADC_value);//串口輸出值
  }
}

文章來源地址http://www.zghlxwxcb.cn/news/detail-401816.html

到了這里,關(guān)于STM32HAL庫常用庫函數(shù)說明的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 關(guān)于STM32使用HAL_Delay(),程序卡死,的解決辦法。

    關(guān)于STM32使用HAL_Delay(),程序卡死,的解決辦法。

    在使用STM32的Hal庫開發(fā)時,存在在中斷中使用Hal_Delay()時程序會卡死的問題,這是由于Hal_Delay()是使用定時器實現(xiàn)的,并且它的定時器中斷優(yōu)先級為15是最低的。需要給它重新設(shè)置中斷優(yōu)先級,實際操作方式如下: 這會把Hal_Delay()的優(yōu)先級提到最高,同時要查看另一個中斷優(yōu)先

    2024年02月16日
    瀏覽(26)
  • STM32 HAL庫常用GPIO函數(shù)以及外部中斷配置與響應(yīng)流程

    STM32 HAL庫常用GPIO函數(shù)以及外部中斷配置與響應(yīng)流程

    Hello,大家好,這是我第一篇博客,寫的不好請大家包涵指教,話不多說直接看內(nèi)容: HAL庫常用GPIO函數(shù): void HAL_GPIO_Init(GPIO_TypeDef? *GPIOx, GPIO_InitTypeDef *GPIO_Init) 這個函數(shù)主要用來初始化我們需要用到的引腳,設(shè)置其工作頻率、工作模式、上下拉等參數(shù)。如果使用CubeMX配置工程

    2024年02月03日
    瀏覽(27)
  • STM32G0x0系列-軟件定時器解決HAL_Delay問題

    STM32G0x0系列-軟件定時器解決HAL_Delay問題

    目錄 HAL_Delay函數(shù)源碼 軟件定時器 創(chuàng)建工程試驗 1.將對應(yīng)文件移動到項目位置 2.添加現(xiàn)有文件放到工程中? ?3.重定向printf 3.驗證自己的軟件定時器 4.查看現(xiàn)象 ???????? HAL_Delay函數(shù)使用了中斷機制來實現(xiàn)延時功能,當(dāng)在中斷函數(shù)中調(diào)用HAL_Delay函數(shù)需要考慮中斷優(yōu)先級問題。

    2024年02月07日
    瀏覽(87)
  • stm32標(biāo)準(zhǔn)庫開發(fā)常用函數(shù)的使用和代碼說明

    用于控制端口的讀寫操作。 GPIO_Init:初始化GPIO端口。 GPIO_WritePin、GPIO_ReadPin:寫入或讀取指定GPIO引腳的狀態(tài)。 GPIO_SetPin:設(shè)置指定GPIO引腳的狀態(tài)為高電平。 GPIO_ResetPin:將指定GPIO引腳的狀態(tài)復(fù)位為低電平。 用于管理中斷相關(guān)操作。 NVIC_EnableIRQ:使能指定的中斷。 NVIC_Disab

    2024年02月15日
    瀏覽(35)
  • 【物聯(lián)網(wǎng)】stm32標(biāo)準(zhǔn)庫開發(fā)常用函數(shù)的使用和代碼說明

    用于控制端口的讀寫操作。 GPIO_Init:初始化GPIO端口。 GPIO_WritePin、GPIO_ReadPin:寫入或讀取指定GPIO引腳的狀態(tài)。 GPIO_SetPin:設(shè)置指定GPIO引腳的狀態(tài)為高電平。 GPIO_ResetPin:將指定GPIO引腳的狀態(tài)復(fù)位為低電平。 用于管理中斷相關(guān)操作。 NVIC_EnableIRQ:使能指定的中斷。 NVIC_Disab

    2024年02月14日
    瀏覽(51)
  • STM32延遲(休眠)函數(shù)delay/sleep

    參考 MSP432(Keil5)——3.delay延時驅(qū)動_keil5delay函數(shù)_大寫的小寫字母的博客-CSDN博客 親手測試過, 好用。用while太愚蠢,而且不好控制。 下載鏈接 https://download.csdn.net/download/quantum7/87982408 delay.h delay.c

    2024年02月12日
    瀏覽(23)
  • 【HAL庫】STM32CubeMX開發(fā)----非阻塞延時實驗----SysTick(滴答定時器)中斷

    【HAL庫】STM32CubeMX開發(fā)----非阻塞延時實驗----SysTick(滴答定時器)中斷

    STM32CubeMX 下載和安裝 詳細(xì)教程 【HAL庫】STM32CubeMX開發(fā)----STM32F103/F207/F407----目錄 HAL庫 有自帶的 ms級 延時函數(shù): HAL_Delay(); 缺點: 這是 阻塞延時 方式,就是延時期間,什么都不能干,這樣很浪費資源。 這篇文章主要介紹,利用 SysTick(滴答定時器)中斷 實現(xiàn) 非阻塞延時 的實驗

    2024年02月16日
    瀏覽(96)
  • 【STM32】的延時函數(shù)

    目錄 前言 一、 1.for/while循環(huán)延時 2.匯編延時 3.SYSTICK定時器延時 SYSTICK相關(guān)寄存器 總結(jié) ????????延時函數(shù)是嵌入式中最常用到的測試手段,發(fā)現(xiàn)有許多方式可以達(dá)到延時的目的,所以這里做一點小總結(jié)。 代碼如下: 時間公式:延時 = time * 2 * 機器周期 * 指令周期 *(1/26

    2024年02月09日
    瀏覽(22)
  • STM32 顯示代碼提示 以及延時函數(shù)

    control + alt + space

    2023年04月09日
    瀏覽(24)
  • STM32延時函數(shù)的四種方法

    STM32延時函數(shù)的四種方法

    STM32延時函數(shù)的四種方法 單片機編程過程中經(jīng)常用到延時函數(shù),最常用的莫過于微秒級延時delay_us()和毫秒級delay_ms()。本文基于STM32F207介紹4種不同方式實現(xiàn)的延時函數(shù)。 \\\\插播一條:我自己在今年年初錄制了一套還比較系統(tǒng)的入門單片機教程,想要的同學(xué)找我私信,最近比較

    2023年04月26日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包