首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino与C#连接使用Bluno (DFR0296)

Arduino与C#连接使用Bluno (DFR0296)
EN

Stack Overflow用户
提问于 2019-06-03 20:15:43
回答 1查看 125关注 0票数 0
  1. 下面的代码是Arduino IDE代码,
  2. 在Arduino-uno和Arduino-pro微型板上工作得很好。
  3. 这将从Arduino发送值(32大小的缓冲区)到“C#串行通信程序”.
  4. 但是,当我将Arduino替换为Bluno (DFR0296)并运行它时,不能将该值传递给C#程序。(正确检查引脚号)
  5. 我是在Arduino代码中错了,还是应该在C#代码中纠正它?

sketch_dec05a.ino

代码语言:javascript
复制
int En0 = 7;  //  Low enabled
int En1 = 6;  //  Low enabled

int S0  = 5;
int S1  = 4;
int S2  = 3; 
int S3  = 2;


int SIG_pin = A7;

typedef union {
  uint16_t values[32];
  uint8_t buffer[70];
} xData;

xData data;

void setup() {
  Serial.begin(115200);
  pinMode(En0, OUTPUT);
  pinMode(En1, OUTPUT);

  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);

}

void loop() {


while(!Serial.available()) ;

Serial.read();

for(int i = 0 ; i < 32 ; i++){
    data.values[i] = readMux(i);
  }

  Serial.write(data.buffer, 64);


}


int readMux(int channel){
  int controlPin[] = {S0,S1,S2,S3,En0,En1};

  int muxChannel[32][6]={
    {0,0,0,0,0,1}, //channel 0
    {0,0,0,1,0,1}, //channel 1
    {0,0,1,0,0,1}, //channel 2
    {0,0,1,1,0,1}, //channel 3
    {0,1,0,0,0,1}, //channel 4
    {0,1,0,1,0,1}, //channel 5
    {0,1,1,0,0,1}, //channel 6
    {0,1,1,1,0,1}, //channel 7
    {1,0,0,0,0,1}, //channel 8
    {1,0,0,1,0,1}, //channel 9
    {1,0,1,0,0,1}, //channel 10
    {1,0,1,1,0,1}, //channel 11
    {1,1,0,0,0,1}, //channel 12
    {1,1,0,1,0,1}, //channel 13
    {1,1,1,0,0,1}, //channel 14
    {1,1,1,1,0,1}, //channel 15
    {0,0,0,0,1,0}, //channel 16
    {0,0,0,1,1,0}, //channel 17
    {0,0,1,0,1,0}, //channel 18
    {0,0,1,1,1,0}, //channel 19
    {0,1,0,0,1,0}, //channel 20
    {0,1,0,1,1,0}, //channel 21
    {0,1,1,0,1,0}, //channel 22
    {0,1,1,1,1,0}, //channel 23
    {1,0,0,0,1,0}, //channel 24
    {1,0,0,1,1,0}, //channel 25
    {1,0,1,0,1,0}, //channel 26
    {1,0,1,1,1,0}, //channel 27
    {1,1,0,0,1,0}, //channel 28
    {1,1,0,1,1,0}, //channel 29
    {1,1,1,0,1,0}, //channel 30
    {1,1,1,1,1,0}  //channel 31
  };

  //loop through the 6 sig
  for(int i = 0; i < 6; i ++){
    digitalWrite(controlPin[i], muxChannel[channel][i]);
  }

  //read the value at the SIG pin
  int val = analogRead(SIG_pin);

  //return the value
  return val;
}
EN

回答 1

Stack Overflow用户

发布于 2021-08-10 10:48:37

这个问题很老,但也许其他人需要答案。在串行端口初始化代码中,在PC上用C#编写的程序中添加一行:

代码语言:javascript
复制
serial.DtrEnable = true;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56433982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档