首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >七段显示始终显示顶部

七段显示始终显示顶部
EN

Stack Overflow用户
提问于 2019-02-24 00:31:19
回答 2查看 140关注 0票数 0

使用我的Arduino,我创建了一个带有十六进制数字0-F的二维数组,以显示在一个七段显示器上。一切都很完美,我使用了一个for循环来打开显示器的每个部分,但顶部的显示器(A)总是打开的,即使它不应该打开。

代码语言:javascript
运行
复制
void sevenSegment(int a) {
  for (int i = 0; i < nPins; i++) {
    digitalWrite(fontArray[a][i], HIGH);
  }
}

数组:

代码语言:javascript
运行
复制
int fontArray[][7] = { 

  {13, 12, 11, 10, 9, 8}, // 0
  {12, 11},               // 1
  {13, 12, 10, 9, 7},     // 2
  {13, 12, 11, 10, 7},    // 3
  {12, 11, 8, 7},  // 4
  {13, 11, 10, 8, 7},   // 5
  {13, 11, 10, 9, 8, 7},   // 6
  {13, 12, 11}, // 7
  {13, 12, 11, 10, 9, 8, 7},  // 8
  {13, 12, 11, 10, 8, 7},  // 9
  {13, 12, 11, 9, 8, 7},  // A
  {11, 10, 9, 8, 7},  // B
  {13, 10, 9, 8}, // C
  {12, 11, 10, 9, 7}, // D
  {13, 10, 9, 8, 7}, // E
  {13, 9, 8, 7} };  // F

为什么显示屏(A)的顶部针脚13总是在燃烧?:/

EN

Stack Overflow用户

发布于 2019-02-24 08:43:00

除非您的连接中存在错误,否则数组fontArray不会显式初始化所有值。因此,编译器会将这些未初始化的值(在全局数组中)设置为默认值0。

结果是对digitalWrite(0, HIGH)的调用。根据电路板和引脚配置的不同,引脚"0“可能映射到13。

可以使用以下命令来编写for循环以防止出现这种情况:

代码语言:javascript
运行
复制
for (int i = 0; i < nPins; i++) {
  int pin = fontArray[a][i];
  if (pin == 0) {
    break;
  }
  digitalWrite(pin, HIGH);
}
票数 -1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54843641

复制
相关文章

相似问题

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