首先,需要了解 ARDUINO 的外部中断引脚和串口通信接口。 外部中断引脚有 2、3、18、19、20、21 六个,其中 2 和 3 可以同时使用。 串口通信接口有 RX 和 TX 两个引脚,分别在 ARDUINO 的数字引脚 0 和 1 上。

接下来,根据实验内容,可以分为以下步骤:

  1. 连接 1 个按键至外部中断引脚 2 上,并通过串口打印按键次数。

连接按键需要将其中一个引脚连接到数字引脚 2 上,另一个引脚接地。然后在程序中设置外部中断,并编写回调函数,在回调函数中记录按键次数并通过串口打印。

示例代码:

void setup() { Serial.begin(9600); // 初始化串口通信 attachInterrupt(digitalPinToInterrupt(2), interruptHandler, FALLING); // 设置外部中断2,下降沿触发 }

volatile int count = 0; // volatile 关键字表示该变量是可变的,防止编译器优化错误

void interruptHandler() { count++; Serial.println(count); }

void loop() { // 主循环留空 }

  1. 连接 2 个按键至外部中断引脚 2、3 上,同时接 5 个 LED,并将按键次数转化为二进制数控制 LED 显示,并通过串口打印。

连接按键和 LED 需要将两个按键分别连接到数字引脚 2 和 3 上,然后将 5 个 LED 分别连接到数字引脚 4~8 上。在程序中设置两个外部中断,并编写回调函数,在回调函数中记录按键次数并转化为二进制数,然后控制 LED 显示。

示例代码:

void setup() { Serial.begin(9600); // 初始化串口通信 attachInterrupt(digitalPinToInterrupt(2), interruptHandler2, FALLING); // 设置外部中断2,下降沿触发 attachInterrupt(digitalPinToInterrupt(3), interruptHandler3, FALLING); // 设置外部中断3,下降沿触发 pinMode(4, OUTPUT); // 设置数字引脚 4~8 为输出模式 pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); }

volatile int count2 = 0; volatile int count3 = 0;

void interruptHandler2() { count2++; updateLED(); }

void interruptHandler3() { count3++; updateLED(); }

void updateLED() { int decimal = count2 * 10 + count3; // 计算十进制数 int binary = dec2bin(decimal); // 转化为二进制数 digitalWrite(4, binary & 1); // 通过位运算控制 LED 状态 digitalWrite(5, binary >> 1 & 1); digitalWrite(6, binary >> 2 & 1); digitalWrite(7, binary >> 3 & 1); digitalWrite(8, binary >> 4 & 1); Serial.println(binary, BIN); // 打印二进制数 }

int dec2bin(int decimal) { int binary = 0; int factor = 1; while (decimal > 0) { binary += (decimal % 2) * factor; decimal /= 2; factor *= 10; } return binary; }

void loop() { // 主循环留空 }

注意事项:

  1. 外部中断回调函数中尽量不要进行太复杂的操作,防止影响中断的响应时间和稳定性。
  2. 外部中断触发时会打断程序的正常执行,需要注意程序的设计和调试。
  3. 串口通信需要在程序中进行初始化,并设置波特率等参数
如何使用c语言完成下列实验外部中断与串口通行实验目的:掌握 ARDUINO 的外部中断引脚有哪些串行通行的接口是哪几个引脚 这在硬件层面上的应用很重要。掌握外部中断的触发与回调函数串口通行的启动等。内容:①连接 1 个按键至外部中断引脚 2 上ARDUINO 记录按键次数采用中断方式非查询方式并通过串口打印按键次数;②连接 2 个按键至外部中断引脚 23 上同时自己选取其它的 5 个端口接 5 个

原文地址: http://www.cveoy.top/t/topic/eifk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录