我正在尝试编写一个可驱动LED矩阵的头文件,但遇到了无法解决的语法错误

我已经在所有我认为有必要的地方添加了“;”,并选中了https://www.nongnu.org/avr-libc/user-manual/pgmspace.html

#ifndef max7219_H_
#define max7219_H_

#include <io.h>
#include <pgmspace.h>
#include <delay.h>
#include <stdint.h>

#define SLAVE_SELECT PORTB &= ~( 1<<PB4 );
#define SLAVE_DESELECT PORTB |= ~( 1<<PB4 );

char characters[96][5] PROGMEM =
{
   {
    0b00000000,
    0b00000000,
    0b00000000,
    0b00000000,
    0b00000000
    }
};


错误是:错误:max7219.h(15),#included from:p2.c:';'预期

第15行是char字符[96] [5] PROGMEM = ...

最佳答案

const PROGMEM uint8_t characters[96][5] = {
    {
      0b00000000,
      0b00000000,
      0b00000000,
      0b00000000,
      0b00000000
   },
    ... // 95 more symbols
 };


注意,如果数组声明为维度,则它应包含初始化程序中的所有数据,即所有96个符号。

UPD:错误可能由pc2.c之前的#include "max7219.h"中的代码引起
如果您有多个“包含”,请检查上一个。即:

#include "a.h"
#include "b.h"
#include "max7219.h"


错误可能在b.h的末尾

09-10 01:38