当前位置:网站首页>2.2 STM32 GPIO操作
2.2 STM32 GPIO操作
2022-07-06 03:20:00 【rou252051452】
1、概述
通过程序进行PIN设备的输入,输出,中断等的验证工作。
2、输入
3、输出

4、中断

4、测试函数
/**
1、输出:
1)使用正点原子开发板北极星的按钮LED0(PB1)和LED1(PB0)作为输出IO测试。
2)按钮按下后,LED0亮
3)按钮松开后,LED0灭
2、输入:
1)使用正点原子开发板北极星的按钮KEY0(PH3)作为输入进行检测
2)按钮按下后,LED0亮
3)按钮松开后,LED0灭
3、中断:
1)使用正点原子开发板北极星的按钮KEY1(PH2)作为中断输入
2)按钮按下后,LED1亮
3)按钮松开后,LED1灭
**/
#include "rtthread.h"
#include "board.h"
//宏定义进行管脚编号的获取。
#define LED0 GET_PIN(B,1)
#define LED1 GET_PIN(B,0)
static rt_uint32_t KEY0 = 0;
static rt_uint32_t KEY2 = 0;
void exti_callback()
{
if(rt_pin_read(KEY2) == PIN_LOW)
{
rt_pin_write(LED1, PIN_LOW);
}
else
{
rt_pin_write(LED1, PIN_HIGH);
}
}
void example_gpio()
{
//通过API获取管脚编号
KEY0 = rt_pin_get("PH.3");
KEY2 = rt_pin_get("PC.13");
//设置管脚模式
rt_pin_mode(LED0, PIN_MODE_OUTPUT);
rt_pin_mode(LED1, PIN_MODE_OUTPUT);
rt_pin_mode(KEY0, PIN_MODE_INPUT_PULLUP);
rt_pin_mode(KEY2, PIN_MODE_INPUT_PULLUP);
//测试LED灯输出
for(rt_int8_t i = 0; i<5 ; i++)
{
rt_pin_write(LED0, PIN_LOW);
rt_pin_write(LED1, PIN_LOW);
rt_thread_delay(500);
rt_pin_write(LED0, PIN_HIGH);
rt_pin_write(LED1, PIN_HIGH);
rt_thread_delay(500);
}
//中断回调函数绑定
rt_pin_attach_irq(KEY2, PIN_IRQ_MODE_RISING_FALLING, exti_callback, RT_NULL);
//中断使能
rt_pin_irq_enable(KEY2, PIN_IRQ_ENABLE);
while(1)
{
if(rt_pin_read(KEY0) == PIN_LOW)
{
rt_pin_write(LED0, PIN_LOW);
}
else
{
rt_pin_write(LED0, PIN_HIGH);
}
rt_thread_delay(200);
}
}
MSH_CMD_EXPORT(example_gpio, example_gpio)
完整工程
边栏推荐
- 1003 emergency (25 points), "DIJ deformation"
- Problems encountered in 2022 work IV
- Mysql database operation
- . Net 6 and Net core learning notes: Important issues of net core
- Eight super classic pointer interview questions (3000 words in detail)
- Leetcode problem solving -- 99 Restore binary search tree
- Four logs of MySQL server layer
- The next industry outlet: NFT digital collection, is it an opportunity or a foam?
- 下一个行业风口:NFT 数字藏品,是机遇还是泡沫?
- [unity3d] GUI control
猜你喜欢

Codeforces 5 questions par jour (1700 chacune) - jour 6

遥感图像超分辨重建综述

Game theory matlab

下一个行业风口:NFT 数字藏品,是机遇还是泡沫?

八道超经典指针面试题(三千字详解)

three.js网页背景动画液态js特效

1.16 - 校验码

Princeton University, Peking University & UIUC | offline reinforcement learning with realizability and single strategy concentration

Four logs of MySQL server layer

JS音乐在线播放插件vsPlayAudio.js
随机推荐
StrError & PERROR use yyds dry inventory
jsscript
Quartz misfire missed and compensated execution
Linear regression and logistic regression
深入探究指针及指针类型
Safety science to | travel, you must read a guide
SD卡报错“error -110 whilst initialising SD card
IPv6 comprehensive experiment
Eight super classic pointer interview questions (3000 words in detail)
My C language learning record (blue bridge) -- under the pointer
Buuctf question brushing notes - [geek challenge 2019] easysql 1
resulttype和resultmap的区别和应用场景
Python implementation of maddpg - (1) openai maddpg environment configuration
Pytorch基础——(2)张量(tensor)的数学运算
Explore pointers and pointer types in depth
蓝色样式商城网站页脚代码
Shell 传递参数
svg拖动点裁剪图片js特效
11. Container with the most water
Computer graduation project asp Net fitness management system VS development SQLSERVER database web structure c programming computer web page source code project