使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,下面為GPIO接按鍵的使用方式。
1 新建項目
- 在PIO主頁新建項目button,框架選擇libopencm3,開發(fā)板選擇 MonkeyPi_STM32_G070RB;
- 新建完成后在src目錄新建主程序文件main.c;
- 然后更改項目文件platformio.ini的燒寫和調(diào)試方式:
1upload_protocol = cmsis-dap
2debug_tool = cmsis-dap
2 輪詢方式使用按鍵
- 設(shè)置GPIO為輸入模式
1 //set gpio input button
2 gpio_mode_setup(GPIOC, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO11);
- 獲取按鍵輸入狀態(tài)
1while (1)
2{
3 if(gpio_get(GPIOC,GPIO11)){
4 gpio_toggle(GPIOC,GPIO12);
5 }
6}
使用gpio_get獲取按鍵的狀態(tài);
3 外部中斷方式使用按鍵
- 設(shè)置GPIO外部中斷
1void button_setup(void)
2{
3 rcc_periph_clock_enable(RCC_GPIOC);
4
5 nvic_enable_irq(NVIC_EXTI4_15_IRQ);
6
7 gpio_mode_setup(GPIOC,
8 GPIO_MODE_INPUT,
9 GPIO_PUPD_NONE,
10 GPIO11);
11
12 exti_select_source(EXTI11, GPIOC);
13 exti_set_trigger(EXTI11, EXTI_TRIGGER_FALLING);
14 exti_enable_request(EXTI11);
15}
設(shè)置GPIOC11外部中斷,引腳設(shè)置為輸入模式,然后開啟中斷,并設(shè)置中斷下降沿觸發(fā)方式;
- 中斷函數(shù)
1/**
2 * @brief EXTI4-15 Interrupt service routine.
3 */
4void exti4_15_isr(void)
5{
6 exti_reset_request(EXTI11);
7
8 gpio_toggle(GPIOC, GPIO12);
9}
外部中斷4-15共用中斷函數(shù)exti4_15_isr。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
STM32
+關(guān)注
關(guān)注
2305文章
11121瀏覽量
371164 -
中斷
+關(guān)注
關(guān)注
5文章
912瀏覽量
43565 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4406瀏覽量
66839 -
按鍵
+關(guān)注
關(guān)注
4文章
229瀏覽量
58419 -
GPIO
+關(guān)注
關(guān)注
16文章
1313瀏覽量
55727
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
STM32G0開發(fā)筆記:FreeRTOS和FreeModbus庫使用
使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為FreeRTOS和FreeModbus庫使用。
STM32G0開發(fā)筆記:FreeRTOS和CLI組件使用
使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為FreeRTOS和CLI組件使用。
STM32G0開發(fā)筆記:使用FreeRTOS系統(tǒng)的隊列Queue
使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,下面為使用FreeRTOS系統(tǒng)的隊列Queue。
STM32G0開發(fā)筆記:使用FreeRTOS系統(tǒng)
使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,下面為使用FreeRTOS系統(tǒng)。
STM32G0開發(fā)筆記:用PWM來實現(xiàn)LED呼吸燈效果
使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,下面使用PWM來實現(xiàn)LED呼吸燈效果。
STM32G0開發(fā)筆記:EEPROM M24C02的使用方法
使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為EEPROM M24C02的使用方法。
STM32G0開發(fā)筆記:串口中斷的使用
使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為串口中斷的使用。
STM32G0開發(fā)筆記:使用libopencm3庫
使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,開發(fā)環(huán)境為VSCode+PIO插件,這里以開發(fā)

STM32G0開發(fā)筆記:GPIO接按鍵的使用方式
評論