为啥pinMode函数要在Setup里面置顶?-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 822|回复: 12

[已解决] 为啥pinMode函数要在Setup里面置顶?

[复制链接]
发表于 2022-4-2 00:24 | 显示全部楼层 |阅读模式
能正确工作的部分代码,只是偷懒用pin6当作VCC pin7当作GND,如果把pinMode写前面就能正常给LCD2004供电;
  1. #include <LiquidCrystal_I2C.h>
  2. LiquidCrystal_I2C lcd(0x27,20,4);
  3. unsigned long randNumber;
  4. int a,b,c,d;
  5. void setup() {
  6. pinMode(6,OUTPUT);  //vcc
  7. pinMode(7,OUTPUT);  //gnd
  8. digitalWrite(6,HIGH);
  9. digitalWrite(7,LOW);
  10. lcd.init();
  11. lcd.backlight();
  12. randomSeed(analogRead(A0));

  13. }
复制代码
如果把pinMode写后面,LCD2004不工作,万用表测试也没有电压,例如下面的代码
  1. #include <LiquidCrystal_I2C.h>
  2. LiquidCrystal_I2C lcd(0x27,20,4);
  3. unsigned long randNumber;
  4. int a,b,c,d;
  5. void setup() {
  6. lcd.init();
  7. lcd.backlight();
  8. randomSeed(analogRead(A0));
  9. pinMode(6,OUTPUT); //vcc
  10. pinMode(7,OUTPUT); //gnd
  11. digitalWrite(6,HIGH);
  12. digitalWrite(7,LOW);

  13. }
复制代码
找了半天资料没弄清楚原因,为啥要把pinMode 写前面才能正常工作呢?向老师们求教!!

发表于 2022-4-2 02:12 | 显示全部楼层
不能用IO供电。。。不想多说了
发表于 2022-4-2 02:12 | 显示全部楼层
不是 pinMode 的問題吧,問題在 digitalWrite,

既然 6、7負責 LCD 的電源,你電源不開就要 LCD
工作,它不理你只是剛好而已,就像你拿遙控器
擺弄了半天最後才裝電池,然後抱怨說電視不理你,
再問為何遙控器電池一定要先裝擺弄時電視才會作動?

不然你用第一段的程式,pinMode 原位置不動,
把 digitalWrite 兩行程式移到最下面再試試?
发表于 2022-4-2 09:49 | 显示全部楼层
shouzama 发表于 2022-4-2 02:12
不是 pinMode 的問題吧,問題在 digitalWrite,

既然 6、7負責 LCD 的電源,你電源不開就要 LCD

讲的很棒!
发表于 2022-4-2 22:48 | 显示全部楼层
肯定要先供电才能初始化成功
 楼主| 发表于 2022-4-3 00:53 | 显示全部楼层
shouzama 发表于 2022-4-2 02:12
不是 pinMode 的問題吧,問題在 digitalWrite,

既然 6、7負責 LCD 的電源,你電源不開就要 LCD
  1. #include <LiquidCrystal_I2C.h>
  2. LiquidCrystal_I2C lcd(0x27,20,4);
  3. unsigned long randNumber;
  4. int a,b,c,d;
  5. void setup() {
  6. pinMode(6,OUTPUT);  //vcc
  7. pinMode(7,OUTPUT);  //gnd
  8. lcd.init();
  9. lcd.backlight();
  10. randomSeed(analogRead(A0));
  11. digitalWrite(6,HIGH);
  12. digitalWrite(7,LOW);
  13. }
复制代码


试了一下,确实没有供电。感觉最后两行代码没有执行一样,为什么呢
发表于 2022-4-3 01:10 | 显示全部楼层
lzs303 发表于 2022-4-3 00:53
试了一下,确实没有供电。感觉最后两行代码没有执行一样,为什么呢

你拔掉LCD试试
 楼主| 发表于 2022-4-3 02:00 | 显示全部楼层

刷了这个后,屏幕不亮的。没有供电啊
发表于 2022-4-3 03:01 | 显示全部楼层
lzs303 发表于 2022-4-3 02:00
刷了这个后,屏幕不亮的。没有供电啊

是让你试试拔掉后电平会不会拉高
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:46 , Processed in 0.110388 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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