Перейти к содержанию

Регистры CAN STM32F4

Регистры bxCAN STM32F4: режимы инициализации, сна и отладки, скорость и точка выборки в CAN_BTR, три передающих ящика, два FIFO приёма по три сообщения, флаги и счётчики ошибок, банки фильтров по маске или списку.

У STM32F4 два контроллера: CAN1 (ведущий) и CAN2 (ведомый, без собственного доступа к памяти). 28 банков фильтров общие, граница между ними задаётся полем CAN2SB регистра CAN_FMR в CAN1 (RM0090, раздел 32.9).

После сброса контроллер спит (SLEEP = 1). Настройку начинают с INRQ = 1 и ожидания INAK: только в режиме инициализации доступен CAN_BTR. Скорость = 1 / (tq × (1 + (TS1 + 1) + (TS2 + 1))), где квант tq = (BRP + 1) периодов PCLK1. Бит SILM включает «молчаливый» режим, LBKM — петлю для самопроверки без шины. Выход в нормальный режим — сброс INRQ и ожидание INAK = 0.

Сообщения приёма проходят через банки фильтров: каждый банк — два 32-битных регистра FR1 и FR2, работающих как идентификатор с маской или как список идентификаторов (CAN_FM1R), в одном 32-битном или двух 16-битных фильтрах (CAN_FS1R), с назначением в FIFO 0 или 1 (CAN_FFA1R). Менять фильтры можно при FINIT = 1. Принятое сообщение читают из выходного ящика FIFO и освобождают битом RFOMx.

ЭкземплярБазовый адресЕсть у
CAN10x4000 6400всех
CAN20x4000 6800всех

Регистры блока

РегистрСмещениеНазначениеПосле сброса
CAN_MCR0x00Режимы и управление0x0001 0002
CAN_MSR0x04Состояние0x0000 0C02
CAN_TSR0x08Состояние передающих ящиков0x1C00 0000
CAN_RF0R0x0CFIFO приёма 00x0000 0000
CAN_RF1R0x10FIFO приёма 10x0000 0000
CAN_IER0x14Разрешение прерываний0x0000 0000
CAN_ESR0x18Ошибки и счётчики ошибок0x0000 0000
CAN_BTR0x1CСкорость, точка выборки и отладочные режимы0x0123 0000
CAN_TI0R0x180Передающий ящик 0: идентификатор и запрос передачи0xXXXX XXXX (кроме бита 0: TXRQ = 0)
CAN_TDT0R0x184Передающий ящик 0: длина и метка времени0xXXXX XXXX
CAN_TDL0R0x188Передающий ящик 0: байты данных 0–30xXXXX XXXX
CAN_TDH0R0x18CПередающий ящик 0: байты данных 4–70xXXXX XXXX
CAN_TI1R0x190Передающий ящик 1: идентификатор и запрос передачи0xXXXX XXXX (кроме бита 0: TXRQ = 0)
CAN_TDT1R0x194Передающий ящик 1: длина и метка времени0xXXXX XXXX
CAN_TDL1R0x198Передающий ящик 1: байты данных 0–30xXXXX XXXX
CAN_TDH1R0x19CПередающий ящик 1: байты данных 4–70xXXXX XXXX
CAN_TI2R0x1A0Передающий ящик 2: идентификатор и запрос передачи0xXXXX XXXX (кроме бита 0: TXRQ = 0)
CAN_TDT2R0x1A4Передающий ящик 2: длина и метка времени0xXXXX XXXX
CAN_TDL2R0x1A8Передающий ящик 2: байты данных 0–30xXXXX XXXX
CAN_TDH2R0x1ACПередающий ящик 2: байты данных 4–70xXXXX XXXX
CAN_RI0R0x1B0Выходной ящик FIFO 0: идентификатор0xXXXX XXXX
CAN_RDT0R0x1B4Выходной ящик FIFO 0: длина, номер фильтра и метка времени0xXXXX XXXX
CAN_RDL0R0x1B8Выходной ящик FIFO 0: байты данных 0–30xXXXX XXXX
CAN_RDH0R0x1BCВыходной ящик FIFO 0: байты данных 4–70xXXXX XXXX
CAN_RI1R0x1C0Выходной ящик FIFO 1: идентификатор0xXXXX XXXX
CAN_RDT1R0x1C4Выходной ящик FIFO 1: длина, номер фильтра и метка времени0xXXXX XXXX
CAN_RDL1R0x1C8Выходной ящик FIFO 1: байты данных 0–30xXXXX XXXX
CAN_RDH1R0x1CCВыходной ящик FIFO 1: байты данных 4–70xXXXX XXXX
CAN_FMR0x200Режим инициализации фильтров0x2A1C 0E01
CAN_FM1R0x204Режим банков: маска или список0x0000 0000
CAN_FS1R0x20CМасштаб банков: 16 или 32 бита0x0000 0000
CAN_FFA1R0x214FIFO для каждого банка0x0000 0000
CAN_FA1R0x21CВключение банков фильтров0x0000 0000
CAN_F0R10x240Банк фильтра 0, регистр 10xXXXX XXXX
CAN_F0R20x244Банк фильтра 0, регистр 20xXXXX XXXX
CAN_F1R10x248Банк фильтра 1, регистр 10xXXXX XXXX
CAN_F1R20x24CБанк фильтра 1, регистр 20xXXXX XXXX
CAN_F2R10x250Банк фильтра 2, регистр 10xXXXX XXXX
CAN_F2R20x254Банк фильтра 2, регистр 20xXXXX XXXX
CAN_F3R10x258Банк фильтра 3, регистр 10xXXXX XXXX
CAN_F3R20x25CБанк фильтра 3, регистр 20xXXXX XXXX
CAN_F4R10x260Банк фильтра 4, регистр 10xXXXX XXXX
CAN_F4R20x264Банк фильтра 4, регистр 20xXXXX XXXX
CAN_F5R10x268Банк фильтра 5, регистр 10xXXXX XXXX
CAN_F5R20x26CБанк фильтра 5, регистр 20xXXXX XXXX
CAN_F6R10x270Банк фильтра 6, регистр 10xXXXX XXXX
CAN_F6R20x274Банк фильтра 6, регистр 20xXXXX XXXX
CAN_F7R10x278Банк фильтра 7, регистр 10xXXXX XXXX
CAN_F7R20x27CБанк фильтра 7, регистр 20xXXXX XXXX
CAN_F8R10x280Банк фильтра 8, регистр 10xXXXX XXXX
CAN_F8R20x284Банк фильтра 8, регистр 20xXXXX XXXX
CAN_F9R10x288Банк фильтра 9, регистр 10xXXXX XXXX
CAN_F9R20x28CБанк фильтра 9, регистр 20xXXXX XXXX
CAN_F10R10x290Банк фильтра 10, регистр 10xXXXX XXXX
CAN_F10R20x294Банк фильтра 10, регистр 20xXXXX XXXX
CAN_F11R10x298Банк фильтра 11, регистр 10xXXXX XXXX
CAN_F11R20x29CБанк фильтра 11, регистр 20xXXXX XXXX
CAN_F12R10x2A0Банк фильтра 12, регистр 10xXXXX XXXX
CAN_F12R20x2A4Банк фильтра 12, регистр 20xXXXX XXXX
CAN_F13R10x2A8Банк фильтра 13, регистр 10xXXXX XXXX
CAN_F13R20x2ACБанк фильтра 13, регистр 20xXXXX XXXX
CAN_F14R10x2B0Банк фильтра 14, регистр 10xXXXX XXXX
CAN_F14R20x2B4Банк фильтра 14, регистр 20xXXXX XXXX
CAN_F15R10x2B8Банк фильтра 15, регистр 10xXXXX XXXX
CAN_F15R20x2BCБанк фильтра 15, регистр 20xXXXX XXXX
CAN_F16R10x2C0Банк фильтра 16, регистр 10xXXXX XXXX
CAN_F16R20x2C4Банк фильтра 16, регистр 20xXXXX XXXX
CAN_F17R10x2C8Банк фильтра 17, регистр 10xXXXX XXXX
CAN_F17R20x2CCБанк фильтра 17, регистр 20xXXXX XXXX
CAN_F18R10x2D0Банк фильтра 18, регистр 10xXXXX XXXX
CAN_F18R20x2D4Банк фильтра 18, регистр 20xXXXX XXXX
CAN_F19R10x2D8Банк фильтра 19, регистр 10xXXXX XXXX
CAN_F19R20x2DCБанк фильтра 19, регистр 20xXXXX XXXX
CAN_F20R10x2E0Банк фильтра 20, регистр 10xXXXX XXXX
CAN_F20R20x2E4Банк фильтра 20, регистр 20xXXXX XXXX
CAN_F21R10x2E8Банк фильтра 21, регистр 10xXXXX XXXX
CAN_F21R20x2ECБанк фильтра 21, регистр 20xXXXX XXXX
CAN_F22R10x2F0Банк фильтра 22, регистр 10xXXXX XXXX
CAN_F22R20x2F4Банк фильтра 22, регистр 20xXXXX XXXX
CAN_F23R10x2F8Банк фильтра 23, регистр 10xXXXX XXXX
CAN_F23R20x2FCБанк фильтра 23, регистр 20xXXXX XXXX
CAN_F24R10x300Банк фильтра 24, регистр 10xXXXX XXXX
CAN_F24R20x304Банк фильтра 24, регистр 20xXXXX XXXX
CAN_F25R10x308Банк фильтра 25, регистр 10xXXXX XXXX
CAN_F25R20x30CБанк фильтра 25, регистр 20xXXXX XXXX
CAN_F26R10x310Банк фильтра 26, регистр 10xXXXX XXXX
CAN_F26R20x314Банк фильтра 26, регистр 20xXXXX XXXX
CAN_F27R10x318Банк фильтра 27, регистр 10xXXXX XXXX
CAN_F27R20x31CБанк фильтра 27, регистр 20xXXXX XXXX

Конструктор значения

Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.

Значение: 0x00010002

0000 0000 0000 0001 0000 0000 0000 0010

CAN1->MCR = 0x00010002;

CAN_MCR — режимы и управление

Смещение 0x00, 32 бит, после сброса 0x0001 0002. В коде: CAN1->MCR.

31302928272625242322212019181716
—DBF
1514131211109876543210
RESET—TTCMABOMAWUMNARTRFLMTXFPSLEEPINRQ
  • DBF (бит 16) — Остановка приёма и передачи при отладке.
  • RESET (бит 15) — Программный сброс bxCAN, после него — режим сна.
  • TTCM (бит 7) — Режим связи по времени (TTCAN).
  • ABOM (бит 6) — Автоматический выход из состояния bus-off.
  • AWUM (бит 5) — Автоматическое пробуждение при приёме сообщения.
  • NART (бит 4) — Без автоматического повтора передачи.
  • RFLM (бит 3) — Блокировка FIFO при переполнении: новое сообщение отбрасывается.
  • TXFP (бит 2) — Порядок передачи: по приоритету идентификатора или по очереди запросов.
    TXFPЗначение
    0По приоритету идентификатора
    1По порядку запросов
  • SLEEP (бит 1) — Запрос режима сна; установлен после сброса.
  • INRQ (бит 0) — Запрос режима инициализации.

CAN_MSR — состояние

Смещение 0x04, 32 бит, после сброса 0x0000 0C02. В коде: CAN1->MSR.

31302928272625242322212019181716
—
1514131211109876543210
—RXSAMPRXMTXM—SLAKIWKUIERRISLAKINAK
  • RX (бит 11) — Текущий уровень на выводе CAN_RX.
  • SAMP (бит 10) — Уровень RX в последней точке выборки.
  • RXM (бит 9) — Контроллер сейчас принимает.
  • TXM (бит 8) — Контроллер сейчас передаёт.
  • SLAKI (бит 4) — Прерывание: вход в режим сна; сбрасывается записью 1.
  • WKUI (бит 3) — Прерывание пробуждения; сбрасывается записью 1.
  • ERRI (бит 2) — Прерывание по ошибке; сбрасывается записью 1.
  • SLAK (бит 1) — Подтверждение режима сна.
  • INAK (бит 0) — Подтверждение режима инициализации.

CAN_TSR — состояние передающих ящиков

Смещение 0x08, 32 бит, после сброса 0x1C00 0000. В коде: CAN1->TSR.

31302928272625242322212019181716
LOW2LOW1LOW0TME2TME1TME0CODEABRQ2—TERR2ALST2TXOK2RQCP2
1514131211109876543210
ABRQ1—TERR1ALST1TXOK1RQCP1ABRQ0—TERR0ALST0TXOK0RQCP0
  • LOW0–LOW2 (по биту на каждый y, положение — на карте битов) — Ящик y имеет самый низкий приоритет.
  • TME0–TME2 (по биту на каждый y, положение — на карте битов) — Передающий ящик y свободен.
  • CODE (биты 25:24) — Номер следующего свободного ящика или ящика с низшим приоритетом.
  • ABRQ0–ABRQ2 (по биту на каждый y, положение — на карте битов) — Отмена передачи из ящика y.
  • TERR0–TERR2 (по биту на каждый y, положение — на карте битов) — Ошибка передачи ящика y.
  • ALST0–ALST2 (по биту на каждый y, положение — на карте битов) — Ящик y проиграл арбитраж.
  • TXOK0–TXOK2 (по биту на каждый y, положение — на карте битов) — Передача ящика y успешна.
  • RQCP2 (бит 16) — Запрос ящика 2 выполнен; запись 1 сбрасывает флаги ящика.
  • RQCP0 (бит 0) — Запрос ящика 0 выполнен; запись 1 сбрасывает флаги ящика.
  • RQCP1 (бит 8) — Запрос ящика 1 выполнен; запись 1 сбрасывает флаги ящика.

CAN_RF0R — fIFO приёма 0

Смещение 0x0C, 32 бит, после сброса 0x0000 0000. В коде: CAN1->RF0R.

31302928272625242322212019181716
—
1514131211109876543210
—RFOM0FOVR0FULL0—FMP0
  • RFOM0 (бит 5) — Освободить выходной ящик FIFO 0.
  • FOVR0 (бит 4) — Переполнение FIFO 0: сообщение потеряно; сбрасывается записью 1.
  • FULL0 (бит 3) — FIFO 0 полон: три сообщения; сбрасывается записью 1.
  • FMP0 (биты 1:0) — Число сообщений в FIFO 0: 0–3.

CAN_RF1R — fIFO приёма 1

Смещение 0x10, 32 бит, после сброса 0x0000 0000. В коде: CAN1->RF1R.

31302928272625242322212019181716
—
1514131211109876543210
—RFOM1FOVR1FULL1—FMP1
  • RFOM1 (бит 5) — Освободить выходной ящик FIFO 1.
  • FOVR1 (бит 4) — Переполнение FIFO 1: сообщение потеряно; сбрасывается записью 1.
  • FULL1 (бит 3) — FIFO 1 полон: три сообщения; сбрасывается записью 1.
  • FMP1 (биты 1:0) — Число сообщений в FIFO 1: 0–3.

CAN_IER — разрешение прерываний

Смещение 0x14, 32 бит, после сброса 0x0000 0000. В коде: CAN1->IER.

31302928272625242322212019181716
—SLKIEWKUIE
1514131211109876543210
ERRIE—LECIEBOFIEEPVIEEWGIE—FOVIE1FFIE1FMPIE1FOVIE0FFIE0FMPIE0TMEIE
  • SLKIE (бит 17) — Прерывание по входу в сон.
  • WKUIE (бит 16) — Прерывание пробуждения.
  • ERRIE (бит 15) — Общее прерывание по ошибкам.
  • LECIE (бит 11) — Ошибка в поле LEC ставит ERRI.
  • BOFIE (бит 10) — Состояние bus-off ставит ERRI.
  • EPVIE (бит 9) — Состояние error passive ставит ERRI.
  • EWGIE (бит 8) — Предупреждение об ошибках ставит ERRI.
  • FOVIE1 (бит 6) — Прерывание по переполнению FIFO 1.
  • FOVIE0 (бит 3) — Прерывание по переполнению FIFO 0.
  • FFIE1 (бит 5) — Прерывание: FIFO 1 полон.
  • FFIE0 (бит 2) — Прерывание: FIFO 0 полон.
  • FMPIE1 (бит 4) — Прерывание: в FIFO 1 есть сообщение.
  • FMPIE0 (бит 1) — Прерывание: в FIFO 0 есть сообщение.
  • TMEIE (бит 0) — Прерывание: передающий ящик освободился.

CAN_ESR — ошибки и счётчики ошибок

Смещение 0x18, 32 бит, после сброса 0x0000 0000. В коде: CAN1->ESR.

31302928272625242322212019181716
RECTEC
1514131211109876543210
—LEC—BOFFEPVFEWGF
  • REC (биты 31:24) — Счётчик ошибок приёма.
  • TEC (биты 23:16) — Счётчик ошибок передачи.
  • LEC (биты 6:4) — Код последней ошибки на шине.
    LECЗначение
    000Нет ошибки
    001Ошибка вставки бит (stuff)
    010Ошибка формы
    011Нет подтверждения (ACK)
    100Ошибка бита: ожидался рецессивный
    101Ошибка бита: ожидался доминантный
    110Ошибка CRC
    111Установлено программой
  • BOFF (бит 2) — Состояние bus-off.
  • EPVF (бит 1) — Состояние error passive: счётчик больше 127.
  • EWGF (бит 0) — Предупреждение: счётчик ошибок 96 и больше.

CAN_BTR — скорость, точка выборки и отладочные режимы

Смещение 0x1C, 32 бит, после сброса 0x0123 0000. В коде: CAN1->BTR.

31302928272625242322212019181716
SILMLBKM—SJW—TS2TS1
1514131211109876543210
—BRP
  • SILM (бит 31) — «Молчаливый» режим: только приём.
  • LBKM (бит 30) — Режим петли: передача замкнута на приём.
  • SJW (биты 25:24) — Ширина скачка ресинхронизации: SJW + 1 квантов.
  • TS2 (биты 22:20) — Сегмент 2 после точки выборки: TS2 + 1 квантов.
  • TS1 (биты 19:16) — Сегмент 1 до точки выборки: TS1 + 1 квантов.
  • BRP (биты 9:0) — Делитель кванта: tq = (BRP + 1) периодов PCLK1.

CAN_TI0R — передающий ящик 0: идентификатор и запрос передачи

Смещение 0x180, 32 бит, после сброса 0xXXXX XXXX (кроме бита 0: TXRQ = 0). В коде: CAN1->sTxMailBox[0].TIR.

31302928272625242322212019181716
STIDEXID
1514131211109876543210
EXIDIDERTRTXRQ
  • STID (биты 31:21) — Стандартный идентификатор (11 бит) или старшие биты расширенного.
  • EXID (биты 20:3) — Младшие 18 бит расширенного идентификатора.
  • IDE (бит 2) — Формат идентификатора: стандартный или расширенный.
    IDEЗначение
    0Стандартный (11 бит)
    1Расширенный (29 бит)
  • RTR (бит 1) — Кадр данных или удалённый запрос.
    RTRЗначение
    0Кадр данных
    1Удалённый запрос
  • TXRQ (бит 0) — Запрос передачи; сбрасывается, когда ящик освободился.

CAN_TDT0R — передающий ящик 0: длина и метка времени

Смещение 0x184, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sTxMailBox[0].TDTR.

31302928272625242322212019181716
TIME
1514131211109876543210
—TGT—DLC
  • TIME (биты 31:16) — Метка времени начала кадра (режим TTCM).
  • TGT (бит 8) — Передача метки времени в двух последних байтах (режим TTCM).
  • DLC (биты 3:0) — Длина данных: 0–8 байт.

CAN_TDL0R — передающий ящик 0: байты данных 0–3

Смещение 0x188, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sTxMailBox[0].TDLR.

31302928272625242322212019181716
DATA3DATA2
1514131211109876543210
DATA1DATA0
  • DATA0–DATA3 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.

CAN_TDH0R — передающий ящик 0: байты данных 4–7

Смещение 0x18C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sTxMailBox[0].TDHR.

31302928272625242322212019181716
DATA7DATA6
1514131211109876543210
DATA5DATA4
  • DATA4–DATA7 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.

CAN_TI1R — передающий ящик 1: идентификатор и запрос передачи

Смещение 0x190, 32 бит, после сброса 0xXXXX XXXX (кроме бита 0: TXRQ = 0). В коде: CAN1->sTxMailBox[1].TIR.

31302928272625242322212019181716
STIDEXID
1514131211109876543210
EXIDIDERTRTXRQ
  • STID (биты 31:21) — Стандартный идентификатор (11 бит) или старшие биты расширенного.
  • EXID (биты 20:3) — Младшие 18 бит расширенного идентификатора.
  • IDE (бит 2) — Формат идентификатора: стандартный или расширенный.
    IDEЗначение
    0Стандартный (11 бит)
    1Расширенный (29 бит)
  • RTR (бит 1) — Кадр данных или удалённый запрос.
    RTRЗначение
    0Кадр данных
    1Удалённый запрос
  • TXRQ (бит 0) — Запрос передачи; сбрасывается, когда ящик освободился.

CAN_TDT1R — передающий ящик 1: длина и метка времени

Смещение 0x194, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sTxMailBox[1].TDTR.

31302928272625242322212019181716
TIME
1514131211109876543210
—TGT—DLC
  • TIME (биты 31:16) — Метка времени начала кадра (режим TTCM).
  • TGT (бит 8) — Передача метки времени в двух последних байтах (режим TTCM).
  • DLC (биты 3:0) — Длина данных: 0–8 байт.

CAN_TDL1R — передающий ящик 1: байты данных 0–3

Смещение 0x198, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sTxMailBox[1].TDLR.

31302928272625242322212019181716
DATA3DATA2
1514131211109876543210
DATA1DATA0
  • DATA0–DATA3 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.

CAN_TDH1R — передающий ящик 1: байты данных 4–7

Смещение 0x19C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sTxMailBox[1].TDHR.

31302928272625242322212019181716
DATA7DATA6
1514131211109876543210
DATA5DATA4
  • DATA4–DATA7 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.

CAN_TI2R — передающий ящик 2: идентификатор и запрос передачи

Смещение 0x1A0, 32 бит, после сброса 0xXXXX XXXX (кроме бита 0: TXRQ = 0). В коде: CAN1->sTxMailBox[2].TIR.

31302928272625242322212019181716
STIDEXID
1514131211109876543210
EXIDIDERTRTXRQ
  • STID (биты 31:21) — Стандартный идентификатор (11 бит) или старшие биты расширенного.
  • EXID (биты 20:3) — Младшие 18 бит расширенного идентификатора.
  • IDE (бит 2) — Формат идентификатора: стандартный или расширенный.
    IDEЗначение
    0Стандартный (11 бит)
    1Расширенный (29 бит)
  • RTR (бит 1) — Кадр данных или удалённый запрос.
    RTRЗначение
    0Кадр данных
    1Удалённый запрос
  • TXRQ (бит 0) — Запрос передачи; сбрасывается, когда ящик освободился.

CAN_TDT2R — передающий ящик 2: длина и метка времени

Смещение 0x1A4, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sTxMailBox[2].TDTR.

31302928272625242322212019181716
TIME
1514131211109876543210
—TGT—DLC
  • TIME (биты 31:16) — Метка времени начала кадра (режим TTCM).
  • TGT (бит 8) — Передача метки времени в двух последних байтах (режим TTCM).
  • DLC (биты 3:0) — Длина данных: 0–8 байт.

CAN_TDL2R — передающий ящик 2: байты данных 0–3

Смещение 0x1A8, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sTxMailBox[2].TDLR.

31302928272625242322212019181716
DATA3DATA2
1514131211109876543210
DATA1DATA0
  • DATA0–DATA3 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.

CAN_TDH2R — передающий ящик 2: байты данных 4–7

Смещение 0x1AC, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sTxMailBox[2].TDHR.

31302928272625242322212019181716
DATA7DATA6
1514131211109876543210
DATA5DATA4
  • DATA4–DATA7 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.

CAN_RI0R — выходной ящик FIFO 0: идентификатор

Смещение 0x1B0, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFIFOMailBox[0].RIR.

31302928272625242322212019181716
STIDEXID
1514131211109876543210
EXIDIDERTR—
  • STID (биты 31:21) — Стандартный идентификатор (11 бит) или старшие биты расширенного.
  • EXID (биты 20:3) — Младшие 18 бит расширенного идентификатора.
  • IDE (бит 2) — Формат идентификатора: стандартный или расширенный.
    IDEЗначение
    0Стандартный (11 бит)
    1Расширенный (29 бит)
  • RTR (бит 1) — Кадр данных или удалённый запрос.
    RTRЗначение
    0Кадр данных
    1Удалённый запрос

CAN_RDT0R — выходной ящик FIFO 0: длина, номер фильтра и метка времени

Смещение 0x1B4, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFIFOMailBox[0].RDTR.

31302928272625242322212019181716
TIME
1514131211109876543210
FMI—DLC
  • TIME (биты 31:16) — Метка времени начала кадра (режим TTCM).
  • FMI (биты 15:8) — Номер фильтра, который пропустил сообщение.
  • DLC (биты 3:0) — Длина данных: 0–8 байт.

CAN_RDL0R — выходной ящик FIFO 0: байты данных 0–3

Смещение 0x1B8, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFIFOMailBox[0].RDLR.

31302928272625242322212019181716
DATA3DATA2
1514131211109876543210
DATA1DATA0
  • DATA0–DATA3 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.

CAN_RDH0R — выходной ящик FIFO 0: байты данных 4–7

Смещение 0x1BC, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFIFOMailBox[0].RDHR.

31302928272625242322212019181716
DATA7DATA6
1514131211109876543210
DATA5DATA4
  • DATA4–DATA7 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.

CAN_RI1R — выходной ящик FIFO 1: идентификатор

Смещение 0x1C0, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFIFOMailBox[1].RIR.

31302928272625242322212019181716
STIDEXID
1514131211109876543210
EXIDIDERTR—
  • STID (биты 31:21) — Стандартный идентификатор (11 бит) или старшие биты расширенного.
  • EXID (биты 20:3) — Младшие 18 бит расширенного идентификатора.
  • IDE (бит 2) — Формат идентификатора: стандартный или расширенный.
    IDEЗначение
    0Стандартный (11 бит)
    1Расширенный (29 бит)
  • RTR (бит 1) — Кадр данных или удалённый запрос.
    RTRЗначение
    0Кадр данных
    1Удалённый запрос

CAN_RDT1R — выходной ящик FIFO 1: длина, номер фильтра и метка времени

Смещение 0x1C4, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFIFOMailBox[1].RDTR.

31302928272625242322212019181716
TIME
1514131211109876543210
FMI—DLC
  • TIME (биты 31:16) — Метка времени начала кадра (режим TTCM).
  • FMI (биты 15:8) — Номер фильтра, который пропустил сообщение.
  • DLC (биты 3:0) — Длина данных: 0–8 байт.

CAN_RDL1R — выходной ящик FIFO 1: байты данных 0–3

Смещение 0x1C8, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFIFOMailBox[1].RDLR.

31302928272625242322212019181716
DATA3DATA2
1514131211109876543210
DATA1DATA0
  • DATA0–DATA3 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.

CAN_RDH1R — выходной ящик FIFO 1: байты данных 4–7

Смещение 0x1CC, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFIFOMailBox[1].RDHR.

31302928272625242322212019181716
DATA7DATA6
1514131211109876543210
DATA5DATA4
  • DATA4–DATA7 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.

CAN_FMR — режим инициализации фильтров

Смещение 0x200, 32 бит, после сброса 0x2A1C 0E01. В коде: CAN1->FMR.

31302928272625242322212019181716
—
1514131211109876543210
—CAN2SB—FINIT
  • CAN2SB (биты 13:8) — Первый банк фильтров CAN2; банки до него принадлежат CAN1.
  • FINIT (бит 0) — Режим инициализации фильтров.

CAN_FM1R — режим банков: маска или список

Смещение 0x204, 32 бит, после сброса 0x0000 0000. В коде: CAN1->FM1R.

31302928272625242322212019181716
—FBM27FBM26FBM25FBM24FBM23FBM22FBM21FBM20FBM19FBM18FBM17FBM16
1514131211109876543210
FBM15FBM14FBM13FBM12FBM11FBM10FBM9FBM8FBM7FBM6FBM5FBM4FBM3FBM2FBM1FBM0
  • FBM0–FBM27 (по биту на каждый y, положение — на карте битов) — Режим банка y: маска или список.
    FBMyЗначение
    0Идентификатор с маской
    1Список идентификаторов

CAN_FS1R — масштаб банков: 16 или 32 бита

Смещение 0x20C, 32 бит, после сброса 0x0000 0000. В коде: CAN1->FS1R.

31302928272625242322212019181716
—FSC27FSC26FSC25FSC24FSC23FSC22FSC21FSC20FSC19FSC18FSC17FSC16
1514131211109876543210
FSC15FSC14FSC13FSC12FSC11FSC10FSC9FSC8FSC7FSC6FSC5FSC4FSC3FSC2FSC1FSC0
  • FSC0–FSC27 (по биту на каждый y, положение — на карте битов) — Масштаб банка y: два 16-битных или один 32-битный фильтр.
    FSCyЗначение
    0Два 16-битных фильтра
    1Один 32-битный фильтр
  • FSC16 (бит 16) — Масштаб банка 16: два 16-битных или один 32-битный фильтр.
    FSC16Значение
    0Два 16-битных фильтра
    1Один 32-битный фильтр

CAN_FFA1R — fIFO для каждого банка

Смещение 0x214, 32 бит, после сброса 0x0000 0000. В коде: CAN1->FFA1R.

31302928272625242322212019181716
—FFA27FFA26FFA25FFA24FFA23FFA22FFA21FFA20FFA19FFA18FFA17FFA16
1514131211109876543210
FFA15FFA14FFA13FFA12FFA11FFA10FFA9FFA8FFA7FFA6FFA5FFA4FFA3FFA2FFA1FFA0
  • FFA0–FFA27 (по биту на каждый y, положение — на карте битов) — FIFO для банка y.
    FFAyЗначение
    0FIFO 0
    1FIFO 1

CAN_FA1R — включение банков фильтров

Смещение 0x21C, 32 бит, после сброса 0x0000 0000. В коде: CAN1->FA1R.

31302928272625242322212019181716
—FACT27FACT26FACT25FACT24FACT23FACT22FACT21FACT20FACT19FACT18FACT17FACT16
1514131211109876543210
FACT15FACT14FACT13FACT12FACT11FACT10FACT9FACT8FACT7FACT6FACT5FACT4FACT3FACT2FACT1FACT0
  • FACT0–FACT27 (по биту на каждый y, положение — на карте битов) — Включение банка y.

CAN_F0R1 — банк фильтра 0, регистр 1

Смещение 0x240, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[0].FR1.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F0R2 — банк фильтра 0, регистр 2

Смещение 0x244, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[0].FR2.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F1R1 — банк фильтра 1, регистр 1

Смещение 0x248, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[1].FR1.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F1R2 — банк фильтра 1, регистр 2

Смещение 0x24C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[1].FR2.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F2R1 — банк фильтра 2, регистр 1

Смещение 0x250, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[2].FR1.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F2R2 — банк фильтра 2, регистр 2

Смещение 0x254, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[2].FR2.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F3R1 — банк фильтра 3, регистр 1

Смещение 0x258, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[3].FR1.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F3R2 — банк фильтра 3, регистр 2

Смещение 0x25C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[3].FR2.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F4R1 — банк фильтра 4, регистр 1

Смещение 0x260, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[4].FR1.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F4R2 — банк фильтра 4, регистр 2

Смещение 0x264, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[4].FR2.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F5R1 — банк фильтра 5, регистр 1

Смещение 0x268, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[5].FR1.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F5R2 — банк фильтра 5, регистр 2

Смещение 0x26C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[5].FR2.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F6R1 — банк фильтра 6, регистр 1

Смещение 0x270, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[6].FR1.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F6R2 — банк фильтра 6, регистр 2

Смещение 0x274, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[6].FR2.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F7R1 — банк фильтра 7, регистр 1

Смещение 0x278, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[7].FR1.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F7R2 — банк фильтра 7, регистр 2

Смещение 0x27C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[7].FR2.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F8R1 — банк фильтра 8, регистр 1

Смещение 0x280, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[8].FR1.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F8R2 — банк фильтра 8, регистр 2

Смещение 0x284, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[8].FR2.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F9R1 — банк фильтра 9, регистр 1

Смещение 0x288, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[9].FR1.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F9R2 — банк фильтра 9, регистр 2

Смещение 0x28C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[9].FR2.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F10R1 — банк фильтра 10, регистр 1

Смещение 0x290, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[10].FR1.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F10R2 — банк фильтра 10, регистр 2

Смещение 0x294, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[10].FR2.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F11R1 — банк фильтра 11, регистр 1

Смещение 0x298, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[11].FR1.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F11R2 — банк фильтра 11, регистр 2

Смещение 0x29C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[11].FR2.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F12R1 — банк фильтра 12, регистр 1

Смещение 0x2A0, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[12].FR1.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F12R2 — банк фильтра 12, регистр 2

Смещение 0x2A4, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[12].FR2.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F13R1 — банк фильтра 13, регистр 1

Смещение 0x2A8, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[13].FR1.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F13R2 — банк фильтра 13, регистр 2

Смещение 0x2AC, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[13].FR2.

31302928272625242322212019181716
FB31FB30FB29FB28FB27FB26FB25FB24FB23FB22FB21FB20FB19FB18FB17FB16
1514131211109876543210
FB15FB14FB13FB12FB11FB10FB9FB8FB7FB6FB5FB4FB3FB2FB1FB0
  • FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.

CAN_F14R1 — банк фильтра 14, регистр 1

Смещение 0x2B0, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[14].FR1.

Регистр данных: значение занимает его целиком.

CAN_F14R2 — банк фильтра 14, регистр 2

Смещение 0x2B4, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[14].FR2.

Регистр данных: значение занимает его целиком.

CAN_F15R1 — банк фильтра 15, регистр 1

Смещение 0x2B8, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[15].FR1.

Регистр данных: значение занимает его целиком.

CAN_F15R2 — банк фильтра 15, регистр 2

Смещение 0x2BC, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[15].FR2.

Регистр данных: значение занимает его целиком.

CAN_F16R1 — банк фильтра 16, регистр 1

Смещение 0x2C0, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[16].FR1.

Регистр данных: значение занимает его целиком.

CAN_F16R2 — банк фильтра 16, регистр 2

Смещение 0x2C4, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[16].FR2.

Регистр данных: значение занимает его целиком.

CAN_F17R1 — банк фильтра 17, регистр 1

Смещение 0x2C8, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[17].FR1.

Регистр данных: значение занимает его целиком.

CAN_F17R2 — банк фильтра 17, регистр 2

Смещение 0x2CC, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[17].FR2.

Регистр данных: значение занимает его целиком.

CAN_F18R1 — банк фильтра 18, регистр 1

Смещение 0x2D0, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[18].FR1.

Регистр данных: значение занимает его целиком.

CAN_F18R2 — банк фильтра 18, регистр 2

Смещение 0x2D4, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[18].FR2.

Регистр данных: значение занимает его целиком.

CAN_F19R1 — банк фильтра 19, регистр 1

Смещение 0x2D8, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[19].FR1.

Регистр данных: значение занимает его целиком.

CAN_F19R2 — банк фильтра 19, регистр 2

Смещение 0x2DC, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[19].FR2.

Регистр данных: значение занимает его целиком.

CAN_F20R1 — банк фильтра 20, регистр 1

Смещение 0x2E0, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[20].FR1.

Регистр данных: значение занимает его целиком.

CAN_F20R2 — банк фильтра 20, регистр 2

Смещение 0x2E4, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[20].FR2.

Регистр данных: значение занимает его целиком.

CAN_F21R1 — банк фильтра 21, регистр 1

Смещение 0x2E8, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[21].FR1.

Регистр данных: значение занимает его целиком.

CAN_F21R2 — банк фильтра 21, регистр 2

Смещение 0x2EC, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[21].FR2.

Регистр данных: значение занимает его целиком.

CAN_F22R1 — банк фильтра 22, регистр 1

Смещение 0x2F0, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[22].FR1.

Регистр данных: значение занимает его целиком.

CAN_F22R2 — банк фильтра 22, регистр 2

Смещение 0x2F4, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[22].FR2.

Регистр данных: значение занимает его целиком.

CAN_F23R1 — банк фильтра 23, регистр 1

Смещение 0x2F8, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[23].FR1.

Регистр данных: значение занимает его целиком.

CAN_F23R2 — банк фильтра 23, регистр 2

Смещение 0x2FC, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[23].FR2.

Регистр данных: значение занимает его целиком.

CAN_F24R1 — банк фильтра 24, регистр 1

Смещение 0x300, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[24].FR1.

Регистр данных: значение занимает его целиком.

CAN_F24R2 — банк фильтра 24, регистр 2

Смещение 0x304, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[24].FR2.

Регистр данных: значение занимает его целиком.

CAN_F25R1 — банк фильтра 25, регистр 1

Смещение 0x308, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[25].FR1.

Регистр данных: значение занимает его целиком.

CAN_F25R2 — банк фильтра 25, регистр 2

Смещение 0x30C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[25].FR2.

Регистр данных: значение занимает его целиком.

CAN_F26R1 — банк фильтра 26, регистр 1

Смещение 0x310, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[26].FR1.

Регистр данных: значение занимает его целиком.

CAN_F26R2 — банк фильтра 26, регистр 2

Смещение 0x314, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[26].FR2.

Регистр данных: значение занимает его целиком.

CAN_F27R1 — банк фильтра 27, регистр 1

Смещение 0x318, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[27].FR1.

Регистр данных: значение занимает его целиком.

CAN_F27R2 — банк фильтра 27, регистр 2

Смещение 0x31C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[27].FR2.

Регистр данных: значение занимает его целиком.

Частые вопросы

Как рассчитать CAN_BTR для 500 кбит/с?

При PCLK1 = 36 МГц: BRP = 3 даёт квант 4 / 36 МГц ≈ 111 нс, бит из 18 квантов — 1 + 13 + 4 (TS1 = 12, TS2 = 3) — длится 2 мкс, то есть 500 кбит/с с точкой выборки 77,8 %. Полный перебор вариантов и проверку точки выборки делает калькулятор CAN bit timing.

Почему CAN не выходит из режима инициализации?

Флаг INAK сбрасывается, только когда контроллер увидит на линии RX 11 рецессивных бит подряд. Если трансивер не подключён, нет второго узла или нет терминатора, выход из инициализации зависает. Для проверки без шины используйте режим петли LBKM вместе с SILM.

Как пропустить все сообщения в FIFO 0?

При FINIT = 1 настройте банк 0 в режиме маски (FBM0 = 0) с 32-битным масштабом (FSC0 = 1), запишите в FR1 и FR2 нули — маска нулями означает «любой идентификатор», — назначьте FIFO 0 (FFA0 = 0), включите банк битом FACT0 и сбросьте FINIT.

Источники

  1. STMicroelectronics. RM0090: Reference manual (Rev 22) — раздел 32.9: описание регистров, назначение полей и значения после сброса
  2. STMicroelectronics. cmsis-device-f4 v2.6.11: заголовки CMSIS stm32f405xx.h, stm32f407xx.h, stm32f415xx.h, stm32f417xx.h, stm32f427xx.h, stm32f429xx.h, stm32f437xx.h, stm32f439xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0

Нашли ошибку в регистрах?

Другие регистры STM32F4

Калькуляторы и статьи