当前位置:网站首页>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)
完整工程
边栏推荐
- Pytorch基础——(2)张量(tensor)的数学运算
- Tidb ecological tools (backup, migration, import / export) collation
- XSS challenges bypass the protection strategy for XSS injection
- Game theory matlab
- Idea push rejected solution
- 八道超经典指针面试题(三千字详解)
- [Li Kou] the second set of the 280 Li Kou weekly match
- 1.16 - 校验码
- 下一个行业风口:NFT 数字藏品,是机遇还是泡沫?
- 11. Container with the most water
猜你喜欢

I sorted out a classic interview question for my job hopping friends

codeforces每日5題(均1700)-第六天

ERA5再分析资料下载攻略

JS regular filtering and adding image prefixes in rich text

Image super-resolution using deep convolutional networks(SRCNN)解读与实现

MySQL Server层四个日志

遥感图像超分辨重建综述

mysqldump数据备份

XSS challenges bypass the protection strategy for XSS injection
如何做好功能测试
随机推荐
Derivation of anti Park transform and anti Clarke transform formulas for motor control
SAP ALV单元格级别设置颜色
Audio-AudioRecord Binder通信机制
codeforces每日5题(均1700)-第六天
Analyze menu analysis
Audio audiorecord binder communication mechanism
Shell 传递参数
Mysql database operation
Software design principles
js 正则过滤和增加富文本中图片前缀
IPv6 comprehensive experiment
MPLS experiment
Game theory matlab
【Rust 笔记】18-宏
这些不太会
IPv6 jobs
Research on cooperative control of industrial robots
Codeworks 5 questions per day (1700 average) - day 6
Descriptor implements ORM model
Mysqldump data backup