极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10485|回复: 0

读数字输出口的状态

[复制链接]
发表于 2015-10-4 12:13:56 | 显示全部楼层 |阅读模式
看标题,有人可能会迷糊,为什么要读输出口的状态?输出口能不能读状态?事件起因是因为今天要写个小车驱动程序,需要将L298的方向控制端口反转一小段时间来刹车,习惯了51单片机的 P1=~P1;的写法,就想Arudino是否也可以这样操作?查了一遍网络,没发现任何资料,查论坛的WIKI,也没有提到有关内容。哪就做个实验吧。把blink示例改写如下按位取反:
  1. void setup() {
  2.   // initialize digital pin 13 as an output.
  3.   pinMode(13, OUTPUT);
  4. digitalWrite(13,HIGH);
  5.   Serial.begin(9600);
  6. }

  7. // the loop function runs over and over again forever
  8. void loop() {
  9.   digitalWrite(13,~digitalRead(13));   // turn the LED on (HIGH is the voltage level)
  10.   Serial.println(digitalRead(13));
  11. delay(1000);              // wait for a second
  12. }
复制代码
编译通过,但测试结果是端口不能翻转。
再试一下逻辑取反:
  1. void setup() {
  2.   // initialize digital pin 13 as an output.
  3.   pinMode(13, OUTPUT);
  4. digitalWrite(13,HIGH);
  5.   Serial.begin(9600);
  6. }

  7. // the loop function runs over and over again forever
  8. void loop() {
  9.   digitalWrite(13,!digitalRead(13));   // turn the LED on (HIGH is the voltage level)
  10.   Serial.println(digitalRead(13));
  11. delay(1000);              // wait for a second
  12. }
复制代码
可以成功运行,LED正常闪烁,说明Arduino可以通过digitalRead()读取输出口的状态。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 01:09 , Processed in 0.032243 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表