WioTerminal의 BCM20과 BCM21의 정의가 잘못되었습니다.
4052 단어 gpio전자 공작ArduinoWioTerminal라즈파이
어떤 내용입니까?
WioTerminal의 GPIO 정의에 실수가 있다는 것을 깨달은 이야기입니다. (Arduino IDE 환경)
어쩌면 바로 수정된다고 생각합니다만, 만약 같은 빠짐을 만나지 않기 위해 간단하게 정리해 둡니다.
※ BCM20, BCM21의 variant.h의 정의가 잘못되었다고 생각한다.
2020/06/14 본건은 Version 1.7.6에서 수정되었습니다.
※ 이미지는 htps //w w. 그래, ds. 이 m/우우오테 r 모두 lp-4509. HTML
현상
아래와 같은 프로그램을 Arduino IDE로 기술했습니다.
BCM20을 입력 단자로 이용하고 LO 사이는 시리얼로 ON을 출력하는 코드입니다.
void setup() {
pinMode(BCM20, INPUT_PULLUP);
Serial.begin(115200);
}
void loop() {
if ( 0 == digitalRead(BCM20) )
{
Serial.println("on");
}
}
그리고 GND와 PCM20을 단락하지만 아무것도 출력되지 않습니다!
분석 결과
WioTerminal의 BCM20과 BCM21의 정의가 반대로 보인다.
구체적으로, variant.h에,
variant.h
#define BCM20 (53ul)
#define BCM21 (54ul)
하지만, 같은 단자에 할당된 I2S의 번호 정의는 아래와 같이 정의되어 있으므로 아무래도 BCM20과 BCM21의 번호가 반대인 것 같습니다.
#define I2S_SDOUT (53ul)
#define I2S_SDIN (54ul)
해결 방법
현시점(2020/05/24)에서는, BCM20과 BCM21의 정의는 이용하지 않고, I2S_SDOUT, I2S_SDIN를 이용하고 있는 것이 좋을 것 같습니다.
void setup() {
pinMode(I2S_SDIN, INPUT_PULLUP);
Serial.begin(115200);
}
void loop() {
if ( 0 == digitalRead(I2S_SDIN) )
{
Serial.println("on");
}
}
기타
단순한 실수이지만 초조했습니다. 기판을 발주한 직후였으므로 수정 의뢰의 메일을 내고, 해석 작업하면 이런 결과였으므로 일단 안심했습니다. 새로운 장난감을 이용할 때는 요주의군요.
Reference
이 문제에 관하여(WioTerminal의 BCM20과 BCM21의 정의가 잘못되었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/carcon999/items/79908199c3f7d674ad31
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
아래와 같은 프로그램을 Arduino IDE로 기술했습니다.
BCM20을 입력 단자로 이용하고 LO 사이는 시리얼로 ON을 출력하는 코드입니다.
void setup() {
pinMode(BCM20, INPUT_PULLUP);
Serial.begin(115200);
}
void loop() {
if ( 0 == digitalRead(BCM20) )
{
Serial.println("on");
}
}
그리고 GND와 PCM20을 단락하지만 아무것도 출력되지 않습니다!
분석 결과
WioTerminal의 BCM20과 BCM21의 정의가 반대로 보인다.
구체적으로, variant.h에,
variant.h
#define BCM20 (53ul)
#define BCM21 (54ul)
하지만, 같은 단자에 할당된 I2S의 번호 정의는 아래와 같이 정의되어 있으므로 아무래도 BCM20과 BCM21의 번호가 반대인 것 같습니다.
#define I2S_SDOUT (53ul)
#define I2S_SDIN (54ul)
해결 방법
현시점(2020/05/24)에서는, BCM20과 BCM21의 정의는 이용하지 않고, I2S_SDOUT, I2S_SDIN를 이용하고 있는 것이 좋을 것 같습니다.
void setup() {
pinMode(I2S_SDIN, INPUT_PULLUP);
Serial.begin(115200);
}
void loop() {
if ( 0 == digitalRead(I2S_SDIN) )
{
Serial.println("on");
}
}
기타
단순한 실수이지만 초조했습니다. 기판을 발주한 직후였으므로 수정 의뢰의 메일을 내고, 해석 작업하면 이런 결과였으므로 일단 안심했습니다. 새로운 장난감을 이용할 때는 요주의군요.
Reference
이 문제에 관하여(WioTerminal의 BCM20과 BCM21의 정의가 잘못되었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/carcon999/items/79908199c3f7d674ad31
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
variant.h
#define BCM20 (53ul)
#define BCM21 (54ul)
#define I2S_SDOUT (53ul)
#define I2S_SDIN (54ul)
현시점(2020/05/24)에서는, BCM20과 BCM21의 정의는 이용하지 않고, I2S_SDOUT, I2S_SDIN를 이용하고 있는 것이 좋을 것 같습니다.
void setup() {
pinMode(I2S_SDIN, INPUT_PULLUP);
Serial.begin(115200);
}
void loop() {
if ( 0 == digitalRead(I2S_SDIN) )
{
Serial.println("on");
}
}
기타
단순한 실수이지만 초조했습니다. 기판을 발주한 직후였으므로 수정 의뢰의 메일을 내고, 해석 작업하면 이런 결과였으므로 일단 안심했습니다. 새로운 장난감을 이용할 때는 요주의군요.
Reference
이 문제에 관하여(WioTerminal의 BCM20과 BCM21의 정의가 잘못되었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/carcon999/items/79908199c3f7d674ad31
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(WioTerminal의 BCM20과 BCM21의 정의가 잘못되었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/carcon999/items/79908199c3f7d674ad31텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)