当前位置:网站首页>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)
完整工程
边栏推荐
猜你喜欢
Force buckle 1189 Maximum number of "balloons"
XSS challenges bypass the protection strategy for XSS injection
Performance test method of bank core business system
How to choose PLC and MCU?
IPv6 jobs
Pytorch基础——(1)张量(tensor)的初始化
Exness foreign exchange: the governor of the Bank of Canada said that the interest rate hike would be more moderate, and the United States and Canada fell slightly to maintain range volatility
Remote Sensing Image Super-resolution and Object Detection: Benchmark and State of the Art
蓝色样式商城网站页脚代码
Codeforces 5 questions par jour (1700 chacune) - jour 6
随机推荐
【指针训练——八道题】
[padding] an error is reported in the prediction after loading the model weight attributeerror: 'model' object has no attribute '_ place‘
Crazy, thousands of netizens are exploding the company's salary
Pytorch load data
Era5 reanalysis data download strategy
Detailed use of dbutils # yyds dry goods inventory #
电机控制反Park变换和反Clarke变换公式推导
JS regular filtering and adding image prefixes in rich text
Arabellacpc 2019 (supplementary question)
ASU & OSU | model based regularized off-line meta reinforcement learning
适合程序员学习的国外网站推荐
下一个行业风口:NFT 数字藏品,是机遇还是泡沫?
Precautions for single chip microcomputer anti reverse connection circuit
多态day02
Jenkins basic knowledge ----- detailed explanation of 03pipeline code
Performance test method of bank core business system
OCR文字识别方法综述
Four logs of MySQL server layer
Lua uses require to load the shared library successfully, but the return is Boolean (always true)
How to write compile scripts compatible with arm and x86 (Makefile, cmakelists.txt, shell script)