chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HAL庫(kù)GPIO輸入模式在cubemx中的配置

jf_L18yujSQ ? 來(lái)源:小飛哥玩嵌入式 ? 作者:小飛哥玩嵌入式 ? 2022-11-02 09:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

HAL庫(kù)GPIO輸入模式在cubemx中的配置

上節(jié)課程介紹了GPIO輸出模式的配置,包括修改IO標(biāo)簽,選擇GPIO模式、GPIO上下拉等,本節(jié)輸入模式有很多相同之處,節(jié)省時(shí)間,小飛哥就簡(jiǎn)單介紹一下

GPIO選擇與配置

依然是先來(lái)看看我們的Alios 開(kāi)發(fā)板上的按鍵硬件連接,總共有3個(gè)用戶按鍵,分別掛在GPIOE11、GPIOE14和GPIOE10上,連接方式采用的是低電平有效,也即是,按鍵按下之后,MCU檢測(cè)到的電平為低電平,松開(kāi)之后檢測(cè)為高電平,外部上拉電阻4.7K2dfb7494-5a43-11ed-a3b6-dac502259ad0.png2e12674e-5a43-11ed-a3b6-dac502259ad0.png接下來(lái),我們只需要在cubemx對(duì)這3個(gè)GPIO進(jìn)行配置即可,工程在上一節(jié)內(nèi)容上繼續(xù)添加,打開(kāi)上一節(jié)的cubemx工程,選擇PE14引腳,選擇引腳模式為輸入模式2e490ace-5a43-11ed-a3b6-dac502259ad0.png然后修改標(biāo)簽為USR_KEY2,其他兩個(gè)按鍵一樣的配置方法,3個(gè)按鍵配置完成之后如下圖所示:2e5ccc76-5a43-11ed-a3b6-dac502259ad0.png接下來(lái)依然是對(duì)GPIO的模式、配置進(jìn)行修改,這里需要注意一點(diǎn)就是GPIO的上下拉配置,不要瞎選,這個(gè)一定是跟硬件相關(guān)的,比如本次硬件設(shè)計(jì),空閑時(shí)是保持高電平的,那么配置上拉是比較合適的,但是呢,此時(shí)外部已經(jīng)有了上拉電阻,我們內(nèi)部上拉就不是很有必要了,也可以配置為不上拉也不下拉,但是配置為下拉一定是不合適的,可能會(huì)引起信號(hào)的誤動(dòng)作,功耗的增加等不必要的麻煩,所以說(shuō),cubemx配置只是為你減輕了重復(fù)性搬運(yùn)工作,電路工作原理必須了然于胸,選擇最為合適的配置2e83dc62-5a43-11ed-a3b6-dac502259ad0.png配置比較簡(jiǎn)單,我們此次采用的是輪詢獲取GPIO狀態(tài)的方法來(lái)實(shí)現(xiàn)按鍵,當(dāng)然也可以采用外部中斷的方式,對(duì)于普通按鍵來(lái)講,不是很有必要,輪詢GPIO狀態(tài)即可

HAL庫(kù)GPIO輸入模式操作詳解與結(jié)構(gòu)介紹

接下來(lái),我們生成代碼即可2ea319ec-5a43-11ed-a3b6-dac502259ad0.png打開(kāi)工程之后,我們發(fā)現(xiàn)上一節(jié)配置的輸出IO和這一節(jié)的輸入IO是放在一起的,cubemx生成代碼的規(guī)則是把同一類外設(shè)統(tǒng)一放在相應(yīng)的模塊初始化代碼中,宏定義統(tǒng)一放在main.h中如果能夠接受這個(gè)布局的話是沒(méi)有問(wèn)題的,如果不能還是比較麻煩的2ecb7b8a-5a43-11ed-a3b6-dac502259ad0.png2f2a6686-5a43-11ed-a3b6-dac502259ad0.png輸入模式相關(guān)的GPIO API也比較少,只涉及到關(guān)于GPIO操作的API:

/*Initializationandde-initializationfunctions*****************************/
voidHAL_GPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_Init);
voidHAL_GPIO_DeInit(GPIO_TypeDef*GPIOx,uint32_tGPIO_Pin);

/**
*@}
*/

/**@addtogroupGPIO_Exported_Functions_Group2IOoperationfunctions
*@{
*/

/*IOoperationfunctions*****************************************************/
GPIO_PinStateHAL_GPIO_ReadPin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin);

如何使用呢?

參數(shù)GPIO_TypeDef *GPIOx可以是GPIO組的地址:

#defineGPIOA((GPIO_TypeDef*)GPIOA_BASE)
#defineGPIOB((GPIO_TypeDef*)GPIOB_BASE)
#defineGPIOC((GPIO_TypeDef*)GPIOC_BASE)
#defineGPIOD((GPIO_TypeDef*)GPIOD_BASE)
#defineGPIOE((GPIO_TypeDef*)GPIOE_BASE)
#defineGPIOF((GPIO_TypeDef*)GPIOF_BASE)
#defineGPIOG((GPIO_TypeDef*)GPIOG_BASE)
#defineGPIOH((GPIO_TypeDef*)GPIOH_BASE)
#defineGPIOI((GPIO_TypeDef*)GPIOI_BASE)
參數(shù)GPIO_Pin可以是GPIO的引腳號(hào):

#defineGPIO_PIN_0((uint16_t)0x0001)/*Pin0selected*/
#defineGPIO_PIN_1((uint16_t)0x0002)/*Pin1selected*/
#defineGPIO_PIN_2((uint16_t)0x0004)/*Pin2selected*/
#defineGPIO_PIN_3((uint16_t)0x0008)/*Pin3selected*/
#defineGPIO_PIN_4((uint16_t)0x0010)/*Pin4selected*/
#defineGPIO_PIN_5((uint16_t)0x0020)/*Pin5selected*/
#defineGPIO_PIN_6((uint16_t)0x0040)/*Pin6selected*/
#defineGPIO_PIN_7((uint16_t)0x0080)/*Pin7selected*/
#defineGPIO_PIN_8((uint16_t)0x0100)/*Pin8selected*/
#defineGPIO_PIN_9((uint16_t)0x0200)/*Pin9selected*/
#defineGPIO_PIN_10((uint16_t)0x0400)/*Pin10selected*/
#defineGPIO_PIN_11((uint16_t)0x0800)/*Pin11selected*/
#defineGPIO_PIN_12((uint16_t)0x1000)/*Pin12selected*/
#defineGPIO_PIN_13((uint16_t)0x2000)/*Pin13selected*/
#defineGPIO_PIN_14((uint16_t)0x4000)/*Pin14selected*/
#defineGPIO_PIN_15((uint16_t)0x8000)/*Pin15selected*/
#defineGPIO_PIN_All((uint16_t)0xFFFF)/*Allpinsselected*/

輸入模式返回值為獲取到的GPIO狀態(tài),也即是高低電平狀態(tài),在沒(méi)有按鍵按下的時(shí)候,返回GPIO_PIN_SET,按鍵按下時(shí)候,返回GPIO_PIN_SET

@endverbatim
*@{
*/

/**
*@briefReadthespecifiedinputportpin.
*@paramGPIOxwherexcanbe(A..H)toselecttheGPIOperipheralforSTM32L4family
*@paramGPIO_Pinspecifiestheportbittoread.
*ThisparametercanbeanycombinationofGPIO_Pin_xwherexcanbe(0..15).
*@retvalTheinputportpinvalue.
*/
GPIO_PinStateHAL_GPIO_ReadPin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin)
{
GPIO_PinStatebitstatus;

/*Checktheparameters*/
assert_param(IS_GPIO_PIN(GPIO_Pin));

if((GPIOx->IDR&GPIO_Pin)!=0x00u)
{
bitstatus=GPIO_PIN_SET;
}
else
{
bitstatus=GPIO_PIN_RESET;
}
returnbitstatus;
}

GPIO輸入模式的簡(jiǎn)單測(cè)試

接下來(lái)在之前led的任務(wù)中,對(duì)按鍵狀態(tài)進(jìn)行測(cè)試,這里涉及到按鍵的消抖,所謂“消抖”就是:2f53b0a4-5a43-11ed-a3b6-dac502259ad0.png當(dāng)檢測(cè)到按鍵狀態(tài)變化時(shí),不是立即去響應(yīng)動(dòng)作,而是先等待閉合或斷開(kāi)穩(wěn)定后再進(jìn)行處理。即為按鍵消抖按鍵消抖:可分為硬件消抖和軟件消抖。

硬件消抖就是在按鍵上并聯(lián)一個(gè)電容,如圖 8-11 所示,利用電容的充放電特性來(lái)對(duì)抖動(dòng)過(guò)程中產(chǎn)生的電壓毛刺進(jìn)行平滑處理,從而實(shí)現(xiàn)消抖。

但實(shí)際應(yīng)用中,這種方式的效果往往不是很好,而且還增加了成本和電路復(fù)雜度,所以實(shí)際中使用的并不多。絕大多數(shù)情況下,我們是用軟件即程序來(lái)實(shí)現(xiàn)消抖的

延時(shí)消抖

最簡(jiǎn)單的消抖原理,就是當(dāng)檢測(cè)到按鍵狀態(tài)變化后,先等待一個(gè) 10ms 左右的延時(shí)時(shí)間,讓抖動(dòng)消失后再進(jìn)行一次按鍵狀態(tài)檢測(cè),如果與剛才檢測(cè)到的狀態(tài)相同,就可以確認(rèn)按鍵已經(jīng)穩(wěn)定的動(dòng)作了

staticvoidrt_led1_flash_entry(void*parameter)
{
for(;;)
{
if(!HAL_GPIO_ReadPin(USR_KEY1_GPIO_Port,USR_KEY1_Pin))
{
rt_thread_mdelay(100);
if(!HAL_GPIO_ReadPin(USR_KEY1_GPIO_Port,USR_KEY1_Pin))//消抖
{
rt_kprintf("Key1ispresseded!
");
}
}
if(!HAL_GPIO_ReadPin(USR_KEY2_GPIO_Port,USR_KEY2_Pin))
{
rt_thread_mdelay(100);
if(!HAL_GPIO_ReadPin(USR_KEY2_GPIO_Port,USR_KEY2_Pin))//消抖
{
rt_kprintf("Key2ispresseded!
");
}
}
if(!HAL_GPIO_ReadPin(USR_KEY3_GPIO_Port,USR_KEY3_Pin))
{
rt_thread_mdelay(100);
if(!HAL_GPIO_ReadPin(USR_KEY3_GPIO_Port,USR_KEY3_Pin))//消抖
{
rt_kprintf("Key3ispresseded!
");
}
}
}
}

測(cè)試結(jié)果:2f9441fa-5a43-11ed-a3b6-dac502259ad0.png

324fdfbc-5a43-11ed-a3b6-dac502259ad0.png

多功能按鍵移植

上面是簡(jiǎn)單的按鍵狀態(tài)獲取,實(shí)際中,一個(gè)項(xiàng)目可能按鍵有限但同時(shí)又要實(shí)現(xiàn)復(fù)雜的功能切換,那么按鍵的功能如果很單一的話,就不能夠滿足需求,接下來(lái),小飛哥帶大家一起移植一個(gè)很不錯(cuò)的多功能按鍵框架,代碼來(lái)源是github的jiejieTop

源碼地址:GitHub - jiejieTop/ButtonDrive: 純C語(yǔ)言實(shí)現(xiàn)的一個(gè)按鍵驅(qū)動(dòng),可移植性強(qiáng),支持單雙擊、連按、連按釋放、長(zhǎng)按;采用回調(diào)處理按鍵事件(自定義消抖時(shí)間),使用只需3步,1:創(chuàng)建按鍵,2:按鍵事件與回調(diào)處理函數(shù)鏈接映射。然后周期檢查按鍵。326db8b6-5a43-11ed-a3b6-dac502259ad0.png我們下載源碼進(jìn)行移植,把文件夾里面的這些文件,我們移植到自己的文件目錄,下載文件中包含的main.c中是一個(gè)完整的按鍵初始化,實(shí)現(xiàn),大家可以看看就知道如何使用了3296d3c2-5a43-11ed-a3b6-dac502259ad0.png32b0e5e6-5a43-11ed-a3b6-dac502259ad0.png下面小飛哥就帶大家來(lái)看看如何移植到自己的系統(tǒng)里面

![e7d83ed083514e07e330211e338b33b7.png](en-resource://datab331bf5d4-5a43-11ed-a3b6-dac502259ad0.png可以把memset,printff替換為rt-thread的驅(qū)動(dòng),當(dāng)然也可以不關(guān)注341080c2-5a43-11ed-a3b6-dac502259ad0.png3426be6e-5a43-11ed-a3b6-dac502259ad0.png重新編譯一下,剛才的警告已經(jīng)消失了345549e6-5a43-11ed-a3b6-dac502259ad0.png然后我們看看如何實(shí)現(xiàn)這個(gè)多功能按鍵:

先來(lái)看看一些配置項(xiàng)宏定義,位域、結(jié)構(gòu)體、回調(diào)函數(shù),面向?qū)ο蟮囊惶讝|西都在,是很適合學(xué)習(xí)的,有關(guān)于短按、長(zhǎng)按、單擊、雙擊等等的配置,我們根據(jù)自己的需要配置即可

#defineBTN_NAME_MAX32//名字最大為32字節(jié)

/*按鍵消抖時(shí)間40ms,建議調(diào)用周期為20ms
只有連續(xù)檢測(cè)到40ms狀態(tài)不變才認(rèn)為有效,包括彈起和按下兩種事件
*/

#defineCONTINUOS_TRIGGER0//是否支持連續(xù)觸發(fā),連發(fā)的話就不要檢測(cè)單雙擊與長(zhǎng)按了

/*是否支持單擊&雙擊同時(shí)存在觸發(fā),如果選擇開(kāi)啟宏定義的話,單雙擊都回調(diào),只不過(guò)單擊會(huì)延遲響應(yīng),
因?yàn)楸仨毰袛鄦螕糁笫欠裼|發(fā)了雙擊否則,延遲時(shí)間是雙擊間隔時(shí)間 BUTTON_DOUBLE_TIME。
而如果不開(kāi)啟這個(gè)宏定義,建議工程中只存在單擊/雙擊中的一個(gè),否則,在雙擊響應(yīng)的時(shí)候會(huì)觸發(fā)一次單擊,
因?yàn)殡p擊必須是有一次按下并且釋放之后才產(chǎn)生的*/
#defineSINGLE_AND_DOUBLE_TRIGGER1

/*是否支持長(zhǎng)按釋放才觸發(fā),如果打開(kāi)這個(gè)宏定義,那么長(zhǎng)按釋放之后才觸發(fā)單次長(zhǎng)按,
否則在長(zhǎng)按指定時(shí)間就一直觸發(fā)長(zhǎng)按,觸發(fā)周期由BUTTON_LONG_CYCLE決定*/
#defineLONG_FREE_TRIGGER0

#defineBUTTON_DEBOUNCE_TIME2//消抖時(shí)間(n-1)*調(diào)用周期
#defineBUTTON_CONTINUOS_CYCLE1//連按觸發(fā)周期時(shí)間(n-1)*調(diào)用周期
#defineBUTTON_LONG_CYCLE1//長(zhǎng)按觸發(fā)周期時(shí)間(n-1)*調(diào)用周期
#defineBUTTON_DOUBLE_TIME20//雙擊間隔時(shí)間(n-1)*調(diào)用周期建議在200-600ms
#defineBUTTON_LONG_TIME50/*持續(xù)n秒((n-1)*調(diào)用周期ms),認(rèn)為長(zhǎng)按事件*/

#defineTRIGGER_CB(event)
if(btn->CallBack_Function[event])
btn->CallBack_Function[event]((Button_t*)btn)

typedefvoid(*Button_CallBack)(void*);/*按鍵觸發(fā)回調(diào)函數(shù),需要用戶實(shí)現(xiàn)*/



typedefenum{
BUTTON_DOWM=0,
BUTTON_UP,
BUTTON_DOUBLE,
BUTTON_LONG,
BUTTON_LONG_FREE,
BUTTON_CONTINUOS,
BUTTON_CONTINUOS_FREE,
BUTTON_ALL_RIGGER,
number_of_event,/*觸發(fā)回調(diào)的事件*/
NONE_TRIGGER
}Button_Event;

/*
每個(gè)按鍵對(duì)應(yīng)1個(gè)全局的結(jié)構(gòu)體變量。
其成員變量是實(shí)現(xiàn)濾波和多種按鍵狀態(tài)所必須的
*/
typedefstructbutton
{
/*下面是一個(gè)函數(shù)指針,指向判斷按鍵手否按下的函數(shù)*/
uint8_t(*Read_Button_Level)(void);/*讀取按鍵電平函數(shù),需要用戶實(shí)現(xiàn)*/

charName[BTN_NAME_MAX];

uint8_tButton_State:4;/*按鍵當(dāng)前狀態(tài)(按下還是彈起)*/
uint8_tButton_Last_State:4;/*上一次的按鍵狀態(tài),用于判斷雙擊*/
uint8_tButton_Trigger_Level:2;/*按鍵觸發(fā)電平*/
uint8_tButton_Last_Level:2;/*按鍵當(dāng)前電平*/

uint8_tButton_Trigger_Event;/*按鍵觸發(fā)事件,單擊,雙擊,長(zhǎng)按等*/

Button_CallBackCallBack_Function[number_of_event];

uint8_tButton_Cycle;/*連續(xù)按鍵周期*/

uint8_tTimer_Count;/*計(jì)時(shí)*/
uint8_tDebounce_Time;/*消抖時(shí)間*/

uint8_tLong_Time;/*按鍵按下持續(xù)時(shí)間*/

structbutton*Next;

}Button_t;

然后看看如何使用API,我們只需要實(shí)現(xiàn)GPIO的狀態(tài)獲取、創(chuàng)建按鍵對(duì)象、編寫(xiě)回調(diào)函數(shù)即可,在任務(wù)中輪詢按鍵狀態(tài),移植起來(lái)是非常方便的

#defineKEY_ON0
/*Privatemacro-------------------------------------------------------------*/

/*Privatevariables---------------------------------------------------------*/
Button_tButton1;
/*Privatefunctionprototypes-----------------------------------------------*/
staticuint8_trt_read_key1(void)
{
returnHAL_GPIO_ReadPin(USR_KEY1_GPIO_Port,USR_KEY1_Pin);
}

staticvoidBtn1_Dowm_CallBack(void*btn)
{
PRINT_INFO("Button1單擊!");
}

staticvoidBtn1_Double_CallBack(void*btn)
{
PRINT_INFO("Button1雙擊!");
}

staticvoidBtn1_Long_CallBack(void*btn)
{
PRINT_INFO("Button1長(zhǎng)按!");
}

staticvoidBtn1_Continuos_CallBack(void*btn)
{
PRINT_INFO("Button1連按!");
}
staticvoidBtn1_ContinuosFree_CallBack(void*btn)
{
PRINT_INFO("Button1連按釋放!");
}
/*Privateusercode---------------------------------------------------------*/

/**
*@functionrt_ledflash_entry
*@author:小飛哥玩嵌入式-小飛哥
*@TODO:LED控制線程
*@param:
*@return:NULL
*/
staticvoidrt_led1_flash_entry(void*parameter)
{

Button_Create("Button1",
&Button1,
rt_read_key1,
KEY_ON);
Button_Attach(&Button1,BUTTON_DOWM,Btn1_Dowm_CallBack);//單擊
Button_Attach(&Button1,BUTTON_DOUBLE,Btn1_Double_CallBack);//雙擊
Button_Attach(&Button1,BUTTON_CONTINUOS,Btn1_Continuos_CallBack);//連按
Button_Attach(&Button1,BUTTON_CONTINUOS_FREE,Btn1_ContinuosFree_CallBack);//連按釋放
Button_Attach(&Button1,BUTTON_LONG,Btn1_Long_CallBack);

for(;;)
{

Button_Process();//需要周期調(diào)用按鍵處理函數(shù)
rt_thread_mdelay(20);
//if(!HAL_GPIO_ReadPin(USR_KEY1_GPIO_Port,USR_KEY1_Pin))
//{
//rt_thread_mdelay(100);
//if(!HAL_GPIO_ReadPin(USR_KEY1_GPIO_Port,USR_KEY1_Pin))//消抖
//{
//rt_kprintf("Key1ispresseded!
");
//}
//}
//if(!HAL_GPIO_ReadPin(USR_KEY2_GPIO_Port,USR_KEY2_Pin))
//{
//rt_thread_mdelay(100);
//if(!HAL_GPIO_ReadPin(USR_KEY2_GPIO_Port,USR_KEY2_Pin))//消抖
//{
//rt_kprintf("Key2ispresseded!
");
//}
//}
//if(!HAL_GPIO_ReadPin(USR_KEY3_GPIO_Port,USR_KEY3_Pin))
//{
//rt_thread_mdelay(100);
//if(!HAL_GPIO_ReadPin(USR_KEY3_GPIO_Port,USR_KEY3_Pin))//消抖
//{
//rt_kprintf("Key3ispresseded!
");
//}
//}
}

}

來(lái)看一下測(cè)試效果:348f5564-5a43-11ed-a3b6-dac502259ad0.png

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3532

    瀏覽量

    68399
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1300

    瀏覽量

    55274
  • 低電平
    +關(guān)注

    關(guān)注

    1

    文章

    232

    瀏覽量

    13838

原文標(biāo)題:03-HAL庫(kù)GPIO輸入與多功能按鍵實(shí)現(xiàn)

文章出處:【微信號(hào):小飛哥玩嵌入式,微信公眾號(hào):小飛哥玩嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    HAL庫(kù)GPIOcubemx配置及注意事項(xiàng)

    上節(jié)課程我們介紹了cubemx的界面、時(shí)鐘配置以及如何新建工程等,本節(jié)咱們就繼續(xù)進(jìn)行程序員屆的“hello world”-“點(diǎn)燈”。
    的頭像 發(fā)表于 10-19 09:10 ?2335次閱讀

    使用STM32 HAL庫(kù)進(jìn)行GPIO控制的實(shí)例

    基于STM32微控制器的嵌入式系統(tǒng)開(kāi)發(fā),GPIO(GeneralPurposeInput/Output)控制是其中最基本、最常見(jiàn)的操作之一。通過(guò)使用STM32的HAL
    的頭像 發(fā)表于 12-21 15:22 ?5727次閱讀

    使用CUBEMX配置hal庫(kù)輸入捕獲

    之前有使用標(biāo)準(zhǔn)庫(kù)來(lái)配置的,具體可以看我之前的博客這個(gè)項(xiàng)目是使用CUBEMX配置,hal庫(kù)來(lái)寫(xiě),相
    發(fā)表于 01-06 07:23

    STM32CubeMXHAL庫(kù)對(duì)F103和F411的GPIO配置和使用方法

    文章目錄STM32CubeMX第一章GPIO前言一、GPIO的工作模式二、使用步驟1.引入庫(kù)2.讀入數(shù)據(jù)總結(jié)前言??本文使用STM32CubeMX
    發(fā)表于 01-26 06:28

    STM32CubeMX 配置STM32F407 實(shí)現(xiàn)HAL庫(kù)延時(shí)微妙方案

    STM32CubeMX 配置STM32F407 實(shí)現(xiàn)HAL庫(kù)延時(shí)微妙方案
    發(fā)表于 11-24 20:51 ?20次下載
    STM32<b class='flag-5'>CubeMX</b> <b class='flag-5'>配置</b>STM32F407 實(shí)現(xiàn)<b class='flag-5'>HAL</b><b class='flag-5'>庫(kù)</b>延時(shí)微妙方案

    基于hal庫(kù)的stm32f411re的GPIO輸出模式下電平的讀取

    基于hal庫(kù)的stm32f411re的GPIO輸出模式下電平的讀取1.硬件的配置對(duì)GPIO的參數(shù)
    發(fā)表于 11-29 16:06 ?5次下載
    基于<b class='flag-5'>hal</b><b class='flag-5'>庫(kù)</b>的stm32f411re的<b class='flag-5'>GPIO</b>輸出<b class='flag-5'>模式</b>下電平的讀取

    STM32CubeMX應(yīng)用教程 第一章 GPIO

    ???Nucleo-F411RE文章目錄STM32CubeMX第一章 GPIO前言一、GPIO的工作模式二、使用步驟1.引入庫(kù)2.讀入數(shù)據(jù)總結(jié)前言??本文使用STM32
    發(fā)表于 12-02 13:51 ?9次下載
    STM32<b class='flag-5'>CubeMX</b>應(yīng)用教程 第一章 <b class='flag-5'>GPIO</b>

    HAL庫(kù)GPIO八種工作模式

    眾所周知,STM32的GPIO的工作模式有八種,但是打開(kāi)HAL庫(kù)發(fā)現(xiàn),有12可以供自己設(shè)置。先不要懵,下面解釋一下這12種工作
    發(fā)表于 12-05 13:06 ?8次下載
    <b class='flag-5'>HAL</b><b class='flag-5'>庫(kù)</b>的<b class='flag-5'>GPIO</b>八種工作<b class='flag-5'>模式</b>

    【STM32】標(biāo)準(zhǔn)庫(kù)HAL庫(kù)對(duì)照學(xué)習(xí)教程三--使用庫(kù)函數(shù)配置GPIO點(diǎn)亮LED燈

    【STM32】標(biāo)準(zhǔn)庫(kù)HAL庫(kù)對(duì)照學(xué)習(xí)教程三--使用庫(kù)函數(shù)配置GPIO點(diǎn)亮LED燈一、前言二、準(zhǔn)備工作三、LED硬件電路四、使用標(biāo)準(zhǔn)
    發(fā)表于 12-05 14:06 ?17次下載
    【STM32】標(biāo)準(zhǔn)<b class='flag-5'>庫(kù)</b>與<b class='flag-5'>HAL</b><b class='flag-5'>庫(kù)</b>對(duì)照學(xué)習(xí)教程三--使用庫(kù)函數(shù)<b class='flag-5'>配置</b><b class='flag-5'>GPIO</b>點(diǎn)亮LED燈

    00_STM32F4學(xué)習(xí)_HAL庫(kù)_GPIO函數(shù)

    00_STM32F4學(xué)習(xí)_HAL庫(kù)_GPIO函數(shù)最近重學(xué)STM32,打算從HAL庫(kù)+STM32CubeM
    發(fā)表于 12-05 14:21 ?12次下載
    00_STM32F4學(xué)習(xí)_<b class='flag-5'>HAL</b><b class='flag-5'>庫(kù)</b>_<b class='flag-5'>GPIO</b>函數(shù)

    STM32 CubeMX+HAL庫(kù)基本操作

    STM32 CubeMX+HAL庫(kù)基本操作
    發(fā)表于 12-07 11:21 ?51次下載
    STM32 <b class='flag-5'>CubeMX+HAL</b><b class='flag-5'>庫(kù)</b>基本操作

    基于STM32CubeMX——HAL庫(kù)開(kāi)發(fā)的串口通訊(DMA模式

    的是F103R6Tx的芯片。然后第一步選擇SYS里面的debug模式,如果用HAL庫(kù)不進(jìn)行SWD或JTAG配置,單片機(jī)只能進(jìn)行下載一次程序,要進(jìn)行第二次或更多次程序下載,需要按復(fù)位鍵(
    發(fā)表于 12-24 18:48 ?13次下載
    基于STM32<b class='flag-5'>CubeMX</b>——<b class='flag-5'>HAL</b><b class='flag-5'>庫(kù)</b>開(kāi)發(fā)的串口通訊(DMA<b class='flag-5'>模式</b>)

    STM32 HAL庫(kù) CubeMX教程(五)串口通信基礎(chǔ)

    STM32 HAL庫(kù) CubeMX教程(五)串口通信基礎(chǔ)串口通信簡(jiǎn)介CubeMX配置初始化程序分析程序編寫(xiě)UART: 通用異步收發(fā)傳輸器(U
    發(fā)表于 12-24 18:49 ?12次下載
    STM32 <b class='flag-5'>HAL</b><b class='flag-5'>庫(kù)</b> <b class='flag-5'>CubeMX</b>教程(五)串口通信基礎(chǔ)

    STM32 HAL庫(kù) CUBEMX配置 ADC采集

    提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔文章目錄STM32 HAL庫(kù) CUBEMX配置 ADC采集軟硬件型號(hào)1.單通道不定時(shí)任意時(shí)刻采集信號(hào)
    發(fā)表于 12-27 18:57 ?25次下載
    STM32 <b class='flag-5'>HAL</b><b class='flag-5'>庫(kù)</b> <b class='flag-5'>CUBEMX</b><b class='flag-5'>配置</b> ADC采集

    【STM32】標(biāo)準(zhǔn)庫(kù)HAL庫(kù)對(duì)照學(xué)習(xí)教程特別篇--GPIO詳講

    【STM32】SMT32標(biāo)準(zhǔn)庫(kù)HAL庫(kù)對(duì)照學(xué)習(xí)教程特別篇--GPIO詳講一、前言二、GPIO簡(jiǎn)介1、定義2、分類3、復(fù)用三、
    發(fā)表于 01-13 16:12 ?12次下載
    【STM32】標(biāo)準(zhǔn)<b class='flag-5'>庫(kù)</b>與<b class='flag-5'>HAL</b><b class='flag-5'>庫(kù)</b>對(duì)照學(xué)習(xí)教程特別篇--<b class='flag-5'>GPIO</b>詳講