使用Platformio平台的libopencm3开发框架来开发STM32G0,下面为GPIO接按键的使用方式。
1 新建项目
- 在PIO主页新建项目button,框架选择libopencm3,开发板选择 MonkeyPi_STM32_G070RB;
- 新建完成后在src目录新建主程序文件main.c;
- 然后更改项目文件platformio.ini的烧写和调试方式:
1upload_protocol = cmsis-dap
2debug_tool = cmsis-dap
2 轮询方式使用按键
- 设置GPIO为输入模式
1 //set gpio input button
2 gpio_mode_setup(GPIOC, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO11);
- 获取按键输入状态
1while (1)
2{
3 if(gpio_get(GPIOC,GPIO11)){
4 gpio_toggle(GPIOC,GPIO12);
5 }
6}
使用gpio_get获取按键的状态;
3 外部中断方式使用按键
- 设置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}
设置GPIOC11外部中断,引脚设置为输入模式,然后开启中断,并设置中断下降沿触发方式;
- 中断函数
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共用中断函数exti4_15_isr。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
STM32
+关注
关注
2265文章
10870浏览量
354689 -
中断
+关注
关注
5文章
895浏览量
41384 -
函数
+关注
关注
3文章
4303浏览量
62409 -
按键
+关注
关注
4文章
223浏览量
57568 -
GPIO
+关注
关注
16文章
1196浏览量
51896
发布评论请先 登录
相关推荐
STM32G0开发笔记:FreeRTOS和FreeModbus库使用
使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为FreeRTOS和FreeModbus库使用。
STM32G0开发笔记:使用FreeRTOS系统的队列Queue
使用Platformio平台的libopencm3开发框架来开发STM32G0,下面为使用FreeRTOS系统的队列Queue。
评论