??STM32系列32位微控制器基于Arm? Cortex?-M處理器,旨在為MCU用戶(hù)提供新的開(kāi)發(fā)自由度。它包括一系列產(chǎn)品,集高性能、實(shí)時(shí)功能、數(shù)字信號(hào)處理、低功耗/低電壓操作、連接性等特性于一身,同時(shí)還保持了集成度高和易于開(kāi)發(fā)的特點(diǎn)。

1.硬件接口
??STM32G431開(kāi)發(fā)板有一個(gè)用戶(hù)按鈕和LED燈。
??根據(jù)原理圖,LD2和PA5相連,想要點(diǎn)亮LED則PA5應(yīng)該為高電平。

??用戶(hù)按鍵B1和PC13相連,按下為高電平;

2.軟件設(shè)計(jì)
2.1 芯片型號(hào)選擇
??本示例所使用芯片型號(hào)為:STM32G431RBT6;128KB flash 和32KB SRAM,工作頻率高達(dá)170MHz。

2.2 時(shí)鐘配置


2.3 GPIO配置


2.4 生成代碼


2.5 LED和按鈕引腳配置

2.6 獲取按鍵值函數(shù)編寫(xiě)
/*獲取按鍵值*/
uint8_t Get_KeyVal(void)
{
uint8_t static stat=0;
if(HAL_GPIO_ReadPin(USER_GPIO_Port,USER_Pin)==1 && stat==0)//判斷按鍵是否按下
{
HAL_Delay(20);//延時(shí)消抖
stat=1;
if(HAL_GPIO_ReadPin(USER_GPIO_Port,USER_Pin))return 1;
}
else if(HAL_GPIO_ReadPin(USER_GPIO_Port,USER_Pin)==0)
{
stat=0;
}
return 0;
}
2.7 主函數(shù)
uint8_t key; /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ key=Get_KeyVal(); if(key) { HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin); } }


??開(kāi)發(fā)板本身集成ST_Link下載器,只需安裝ST_Link驅(qū)動(dòng)即可直接下載。
審核編輯:湯梓紅
-
mcu
+關(guān)注
關(guān)注
147文章
18946瀏覽量
398746 -
STM32
+關(guān)注
關(guān)注
2310文章
11166瀏覽量
373567 -
按鍵
+關(guān)注
關(guān)注
4文章
229瀏覽量
58503 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
26文章
6300瀏覽量
118327
發(fā)布評(píng)論請(qǐng)先 登錄
STM32CubeMX stm32g431 PLLP無(wú)法被設(shè)置是怎么回事?
STM32G431無(wú)法輸出項(xiàng)目工程的原因?
stm32g431的PG10-NRST可以當(dāng)普通IO嗎?怎么設(shè)置?
配置STM32G431的FDCAN為普通CAN模式,為什么不能接收數(shù)據(jù)?
STM32F302K8U6和STM32G431中內(nèi)置的運(yùn)放 建立時(shí)間是多長(zhǎng)?
請(qǐng)問(wèn)STM32G431 flash和can為什么沒(méi)有LL庫(kù)?
STM32G431開(kāi)發(fā)板免費(fèi)試用
【STM32G431試用申請(qǐng)】STM32G431在模擬前端板的替代
在什么溫度下可以檢測(cè)到STM32G431的TS_CAL2值呢?
如何使用STM32G431芯片做DAC應(yīng)用
STM32_按鍵點(diǎn)燈
STM32G431之點(diǎn)燈和按鍵配置
評(píng)論