首页 > 解决方案 > 使用编程语言 C 测试 Arduino Board 的引脚

问题描述

我是一名学生,目前正在学习微处理器的基础知识。

我被分配了一项任务,但事先不知道任务本身,我一直在努力寻找答案。所以我想在 Stackoverflow 上试一试。

任务是使用编程语言 C 编写一个简单的程序来测试 Arduino 板,该板首先初始化第 12 个引脚,然后为同一引脚连续提供 5V 5V 和 0 低电压 1 秒。

对于一个不起眼的解决方案或解释,我会很高兴。

先感谢您。

编辑:

我指的是 Arduino 硬件。

标签: carduino

解决方案


由于任务是将某个引脚设置为输出,因此您需要做的第一件事是检查电路板原理图,找出“引脚 12”对应的微控制器端口和引脚。微控制器端口通常有 1 个字母的名称,例如 PORTA、PORTB 等。AVR 也是如此。

一旦您找到了正确的端口,您还必须确定该端口寄存器中要设置的位。每个端口将有 8 个引脚,因为此 MCU 上的每个端口对应于 8 位寄存器。

由于您希望此引脚成为输出,因此您必须配置一个“数据方向寄存器”以使其成为这样。在 AVR(和大多数摩托罗拉风格的 MCU)上,这些寄存器称为 DDRx,其中 x 是端口字母。请参阅 AVR 手册的 GPIO 部分。通过将 1 写入与引脚对应的位,可以将 DDR 寄存器设置为输出。

完成后,您可以将实际端口寄存器中的相关位设置为 1 或 0,具体取决于您想要高信号还是低信号。这些在 AVR 上称为 PORTx。

为了产生 5 秒的延迟,对于业余爱好者/学生来说,调用“忙等待”函数可能就足够了。Arduino 库具有delay()足够的功能。只需等待 5000 毫秒。在专业/实际应用中,应避免忙等待延迟,然后您宁愿使用片上硬件外设定时器,在定时器结束时设置标志。


推荐阅读