当前位置:网站首页>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)
完整工程
边栏推荐
- 这些不太会
- 多态day02
- Pytorch基础——(2)张量(tensor)的数学运算
- 【SLAM】lidar-camera外参标定(港大MarsLab)无需二维码标定板
- Modeling specifications: naming conventions
- Map sorts according to the key value (ascending plus descending)
- EDCircles: A real-time circle detector with a false detection control 翻译
- Getting started with applet cloud development - getting user search content
- 真机无法访问虚拟机的靶场,真机无法ping通虚拟机
- Redis cache breakdown, cache penetration, cache avalanche
猜你喜欢
随机推荐
Polymorphic day02
MySQL Server层四个日志
Audio-AudioRecord Binder通信机制
Huawei, H3C, Cisco command comparison, mind map form from the basic, switching, routing three directions [transferred from wechat official account network technology alliance station]
如何做好功能测试
Advanced learning of MySQL -- Fundamentals -- isolation level of transactions
Analyze menu analysis
2022工作中遇到的问题四
Crazy, thousands of netizens are exploding the company's salary
jsscript
Redis SDS principle
NR modulation 1
Performance test method of bank core business system
I sorted out a classic interview question for my job hopping friends
SD card reports an error "error -110 whilst initializing SD card
Résumé des méthodes de reconnaissance des caractères ocr
Selenium share
Analyze 菜单分析
Add one to non negative integers in the array
下一个行业风口:NFT 数字藏品,是机遇还是泡沫?









