Регистры CAN STM32F4
Регистры bxCAN STM32F4: режимы инициализации, сна и отладки, скорость и точка выборки в CAN_BTR, три передающих ящика, два FIFO приёма по три сообщения, флаги и счётчики ошибок, банки фильтров по маске или списку.
Содержание
- Регистры блока
- Конструктор
- CAN_MCR
- CAN_MSR
- CAN_TSR
- CAN_RF0R
- CAN_RF1R
- CAN_IER
- CAN_ESR
- CAN_BTR
- CAN_TI0R
- CAN_TDT0R
- CAN_TDL0R
- CAN_TDH0R
- CAN_TI1R
- CAN_TDT1R
- CAN_TDL1R
- CAN_TDH1R
- CAN_TI2R
- CAN_TDT2R
- CAN_TDL2R
- CAN_TDH2R
- CAN_RI0R
- CAN_RDT0R
- CAN_RDL0R
- CAN_RDH0R
- CAN_RI1R
- CAN_RDT1R
- CAN_RDL1R
- CAN_RDH1R
- CAN_FMR
- CAN_FM1R
- CAN_FS1R
- CAN_FFA1R
- CAN_FA1R
- CAN_F0R1
- CAN_F0R2
- CAN_F1R1
- CAN_F1R2
- CAN_F2R1
- CAN_F2R2
- CAN_F3R1
- CAN_F3R2
- CAN_F4R1
- CAN_F4R2
- CAN_F5R1
- CAN_F5R2
- CAN_F6R1
- CAN_F6R2
- CAN_F7R1
- CAN_F7R2
- CAN_F8R1
- CAN_F8R2
- CAN_F9R1
- CAN_F9R2
- CAN_F10R1
- CAN_F10R2
- CAN_F11R1
- CAN_F11R2
- CAN_F12R1
- CAN_F12R2
- CAN_F13R1
- CAN_F13R2
- CAN_F14R1
- CAN_F14R2
- CAN_F15R1
- CAN_F15R2
- CAN_F16R1
- CAN_F16R2
- CAN_F17R1
- CAN_F17R2
- CAN_F18R1
- CAN_F18R2
- CAN_F19R1
- CAN_F19R2
- CAN_F20R1
- CAN_F20R2
- CAN_F21R1
- CAN_F21R2
- CAN_F22R1
- CAN_F22R2
- CAN_F23R1
- CAN_F23R2
- CAN_F24R1
- CAN_F24R2
- CAN_F25R1
- CAN_F25R2
- CAN_F26R1
- CAN_F26R2
- CAN_F27R1
- CAN_F27R2
У 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.
| Экземпляр | Базовый адрес | Есть у |
|---|---|---|
| CAN1 | 0x4000 6400 | всех |
| CAN2 | 0x4000 6800 | всех |
Регистры блока
| Регистр | Смещение | Назначение | После сброса |
|---|---|---|---|
| CAN_MCR | 0x00 | Режимы и управление | 0x0001 0002 |
| CAN_MSR | 0x04 | Состояние | 0x0000 0C02 |
| CAN_TSR | 0x08 | Состояние передающих ящиков | 0x1C00 0000 |
| CAN_RF0R | 0x0C | FIFO приёма 0 | 0x0000 0000 |
| CAN_RF1R | 0x10 | FIFO приёма 1 | 0x0000 0000 |
| CAN_IER | 0x14 | Разрешение прерываний | 0x0000 0000 |
| CAN_ESR | 0x18 | Ошибки и счётчики ошибок | 0x0000 0000 |
| CAN_BTR | 0x1C | Скорость, точка выборки и отладочные режимы | 0x0123 0000 |
| CAN_TI0R | 0x180 | Передающий ящик 0: идентификатор и запрос передачи | 0xXXXX XXXX (кроме бита 0: TXRQ = 0) |
| CAN_TDT0R | 0x184 | Передающий ящик 0: длина и метка времени | 0xXXXX XXXX |
| CAN_TDL0R | 0x188 | Передающий ящик 0: байты данных 0–3 | 0xXXXX XXXX |
| CAN_TDH0R | 0x18C | Передающий ящик 0: байты данных 4–7 | 0xXXXX XXXX |
| CAN_TI1R | 0x190 | Передающий ящик 1: идентификатор и запрос передачи | 0xXXXX XXXX (кроме бита 0: TXRQ = 0) |
| CAN_TDT1R | 0x194 | Передающий ящик 1: длина и метка времени | 0xXXXX XXXX |
| CAN_TDL1R | 0x198 | Передающий ящик 1: байты данных 0–3 | 0xXXXX XXXX |
| CAN_TDH1R | 0x19C | Передающий ящик 1: байты данных 4–7 | 0xXXXX XXXX |
| CAN_TI2R | 0x1A0 | Передающий ящик 2: идентификатор и запрос передачи | 0xXXXX XXXX (кроме бита 0: TXRQ = 0) |
| CAN_TDT2R | 0x1A4 | Передающий ящик 2: длина и метка времени | 0xXXXX XXXX |
| CAN_TDL2R | 0x1A8 | Передающий ящик 2: байты данных 0–3 | 0xXXXX XXXX |
| CAN_TDH2R | 0x1AC | Передающий ящик 2: байты данных 4–7 | 0xXXXX XXXX |
| CAN_RI0R | 0x1B0 | Выходной ящик FIFO 0: идентификатор | 0xXXXX XXXX |
| CAN_RDT0R | 0x1B4 | Выходной ящик FIFO 0: длина, номер фильтра и метка времени | 0xXXXX XXXX |
| CAN_RDL0R | 0x1B8 | Выходной ящик FIFO 0: байты данных 0–3 | 0xXXXX XXXX |
| CAN_RDH0R | 0x1BC | Выходной ящик FIFO 0: байты данных 4–7 | 0xXXXX XXXX |
| CAN_RI1R | 0x1C0 | Выходной ящик FIFO 1: идентификатор | 0xXXXX XXXX |
| CAN_RDT1R | 0x1C4 | Выходной ящик FIFO 1: длина, номер фильтра и метка времени | 0xXXXX XXXX |
| CAN_RDL1R | 0x1C8 | Выходной ящик FIFO 1: байты данных 0–3 | 0xXXXX XXXX |
| CAN_RDH1R | 0x1CC | Выходной ящик FIFO 1: байты данных 4–7 | 0xXXXX XXXX |
| CAN_FMR | 0x200 | Режим инициализации фильтров | 0x2A1C 0E01 |
| CAN_FM1R | 0x204 | Режим банков: маска или список | 0x0000 0000 |
| CAN_FS1R | 0x20C | Масштаб банков: 16 или 32 бита | 0x0000 0000 |
| CAN_FFA1R | 0x214 | FIFO для каждого банка | 0x0000 0000 |
| CAN_FA1R | 0x21C | Включение банков фильтров | 0x0000 0000 |
| CAN_F0R1 | 0x240 | Банк фильтра 0, регистр 1 | 0xXXXX XXXX |
| CAN_F0R2 | 0x244 | Банк фильтра 0, регистр 2 | 0xXXXX XXXX |
| CAN_F1R1 | 0x248 | Банк фильтра 1, регистр 1 | 0xXXXX XXXX |
| CAN_F1R2 | 0x24C | Банк фильтра 1, регистр 2 | 0xXXXX XXXX |
| CAN_F2R1 | 0x250 | Банк фильтра 2, регистр 1 | 0xXXXX XXXX |
| CAN_F2R2 | 0x254 | Банк фильтра 2, регистр 2 | 0xXXXX XXXX |
| CAN_F3R1 | 0x258 | Банк фильтра 3, регистр 1 | 0xXXXX XXXX |
| CAN_F3R2 | 0x25C | Банк фильтра 3, регистр 2 | 0xXXXX XXXX |
| CAN_F4R1 | 0x260 | Банк фильтра 4, регистр 1 | 0xXXXX XXXX |
| CAN_F4R2 | 0x264 | Банк фильтра 4, регистр 2 | 0xXXXX XXXX |
| CAN_F5R1 | 0x268 | Банк фильтра 5, регистр 1 | 0xXXXX XXXX |
| CAN_F5R2 | 0x26C | Банк фильтра 5, регистр 2 | 0xXXXX XXXX |
| CAN_F6R1 | 0x270 | Банк фильтра 6, регистр 1 | 0xXXXX XXXX |
| CAN_F6R2 | 0x274 | Банк фильтра 6, регистр 2 | 0xXXXX XXXX |
| CAN_F7R1 | 0x278 | Банк фильтра 7, регистр 1 | 0xXXXX XXXX |
| CAN_F7R2 | 0x27C | Банк фильтра 7, регистр 2 | 0xXXXX XXXX |
| CAN_F8R1 | 0x280 | Банк фильтра 8, регистр 1 | 0xXXXX XXXX |
| CAN_F8R2 | 0x284 | Банк фильтра 8, регистр 2 | 0xXXXX XXXX |
| CAN_F9R1 | 0x288 | Банк фильтра 9, регистр 1 | 0xXXXX XXXX |
| CAN_F9R2 | 0x28C | Банк фильтра 9, регистр 2 | 0xXXXX XXXX |
| CAN_F10R1 | 0x290 | Банк фильтра 10, регистр 1 | 0xXXXX XXXX |
| CAN_F10R2 | 0x294 | Банк фильтра 10, регистр 2 | 0xXXXX XXXX |
| CAN_F11R1 | 0x298 | Банк фильтра 11, регистр 1 | 0xXXXX XXXX |
| CAN_F11R2 | 0x29C | Банк фильтра 11, регистр 2 | 0xXXXX XXXX |
| CAN_F12R1 | 0x2A0 | Банк фильтра 12, регистр 1 | 0xXXXX XXXX |
| CAN_F12R2 | 0x2A4 | Банк фильтра 12, регистр 2 | 0xXXXX XXXX |
| CAN_F13R1 | 0x2A8 | Банк фильтра 13, регистр 1 | 0xXXXX XXXX |
| CAN_F13R2 | 0x2AC | Банк фильтра 13, регистр 2 | 0xXXXX XXXX |
| CAN_F14R1 | 0x2B0 | Банк фильтра 14, регистр 1 | 0xXXXX XXXX |
| CAN_F14R2 | 0x2B4 | Банк фильтра 14, регистр 2 | 0xXXXX XXXX |
| CAN_F15R1 | 0x2B8 | Банк фильтра 15, регистр 1 | 0xXXXX XXXX |
| CAN_F15R2 | 0x2BC | Банк фильтра 15, регистр 2 | 0xXXXX XXXX |
| CAN_F16R1 | 0x2C0 | Банк фильтра 16, регистр 1 | 0xXXXX XXXX |
| CAN_F16R2 | 0x2C4 | Банк фильтра 16, регистр 2 | 0xXXXX XXXX |
| CAN_F17R1 | 0x2C8 | Банк фильтра 17, регистр 1 | 0xXXXX XXXX |
| CAN_F17R2 | 0x2CC | Банк фильтра 17, регистр 2 | 0xXXXX XXXX |
| CAN_F18R1 | 0x2D0 | Банк фильтра 18, регистр 1 | 0xXXXX XXXX |
| CAN_F18R2 | 0x2D4 | Банк фильтра 18, регистр 2 | 0xXXXX XXXX |
| CAN_F19R1 | 0x2D8 | Банк фильтра 19, регистр 1 | 0xXXXX XXXX |
| CAN_F19R2 | 0x2DC | Банк фильтра 19, регистр 2 | 0xXXXX XXXX |
| CAN_F20R1 | 0x2E0 | Банк фильтра 20, регистр 1 | 0xXXXX XXXX |
| CAN_F20R2 | 0x2E4 | Банк фильтра 20, регистр 2 | 0xXXXX XXXX |
| CAN_F21R1 | 0x2E8 | Банк фильтра 21, регистр 1 | 0xXXXX XXXX |
| CAN_F21R2 | 0x2EC | Банк фильтра 21, регистр 2 | 0xXXXX XXXX |
| CAN_F22R1 | 0x2F0 | Банк фильтра 22, регистр 1 | 0xXXXX XXXX |
| CAN_F22R2 | 0x2F4 | Банк фильтра 22, регистр 2 | 0xXXXX XXXX |
| CAN_F23R1 | 0x2F8 | Банк фильтра 23, регистр 1 | 0xXXXX XXXX |
| CAN_F23R2 | 0x2FC | Банк фильтра 23, регистр 2 | 0xXXXX XXXX |
| CAN_F24R1 | 0x300 | Банк фильтра 24, регистр 1 | 0xXXXX XXXX |
| CAN_F24R2 | 0x304 | Банк фильтра 24, регистр 2 | 0xXXXX XXXX |
| CAN_F25R1 | 0x308 | Банк фильтра 25, регистр 1 | 0xXXXX XXXX |
| CAN_F25R2 | 0x30C | Банк фильтра 25, регистр 2 | 0xXXXX XXXX |
| CAN_F26R1 | 0x310 | Банк фильтра 26, регистр 1 | 0xXXXX XXXX |
| CAN_F26R2 | 0x314 | Банк фильтра 26, регистр 2 | 0xXXXX XXXX |
| CAN_F27R1 | 0x318 | Банк фильтра 27, регистр 1 | 0xXXXX XXXX |
| CAN_F27R2 | 0x31C | Банк фильтра 27, регистр 2 | 0xXXXX XXXX |
Конструктор значения
Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.
Значение: 0x00010002
0000 0000 0000 0001 0000 0000 0000 0010
CAN1->MCR = 0x00010002;CAN_MCR — режимы и управление
Смещение 0x00, 32 бит, после сброса 0x0001 0002. В коде: CAN1->MCR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | DBF | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESET | — | TTCM | ABOM | AWUM | NART | RFLM | TXFP | SLEEP | INRQ | ||||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | RX | SAMP | RXM | TXM | — | SLAKI | WKUI | ERRI | SLAK | INAK | |||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| LOW2 | LOW1 | LOW0 | TME2 | TME1 | TME0 | CODE | ABRQ2 | — | TERR2 | ALST2 | TXOK2 | RQCP2 | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ABRQ1 | — | TERR1 | ALST1 | TXOK1 | RQCP1 | ABRQ0 | — | TERR0 | ALST0 | TXOK0 | RQCP0 | ||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | RFOM0 | FOVR0 | FULL0 | — | 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | RFOM1 | FOVR1 | FULL1 | — | 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | SLKIE | WKUIE | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ERRIE | — | LECIE | BOFIE | EPVIE | EWGIE | — | FOVIE1 | FFIE1 | FMPIE1 | FOVIE0 | FFIE0 | FMPIE0 | TMEIE | ||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| REC | TEC | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | LEC | — | BOFF | EPVF | EWGF | ||||||||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SILM | LBKM | — | SJW | — | TS2 | TS1 | |||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| STID | EXID | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EXID | IDE | RTR | TXRQ | ||||||||||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| TIME | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DATA3 | DATA2 | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DATA1 | DATA0 | ||||||||||||||
- DATA0–DATA3 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.
CAN_TDH0R — передающий ящик 0: байты данных 4–7
Смещение 0x18C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sTxMailBox[0].TDHR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DATA7 | DATA6 | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DATA5 | DATA4 | ||||||||||||||
- DATA4–DATA7 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.
CAN_TI1R — передающий ящик 1: идентификатор и запрос передачи
Смещение 0x190, 32 бит, после сброса 0xXXXX XXXX (кроме бита 0: TXRQ = 0). В коде: CAN1->sTxMailBox[1].TIR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| STID | EXID | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EXID | IDE | RTR | TXRQ | ||||||||||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| TIME | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DATA3 | DATA2 | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DATA1 | DATA0 | ||||||||||||||
- DATA0–DATA3 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.
CAN_TDH1R — передающий ящик 1: байты данных 4–7
Смещение 0x19C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sTxMailBox[1].TDHR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DATA7 | DATA6 | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DATA5 | DATA4 | ||||||||||||||
- DATA4–DATA7 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.
CAN_TI2R — передающий ящик 2: идентификатор и запрос передачи
Смещение 0x1A0, 32 бит, после сброса 0xXXXX XXXX (кроме бита 0: TXRQ = 0). В коде: CAN1->sTxMailBox[2].TIR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| STID | EXID | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EXID | IDE | RTR | TXRQ | ||||||||||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| TIME | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DATA3 | DATA2 | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DATA1 | DATA0 | ||||||||||||||
- DATA0–DATA3 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.
CAN_TDH2R — передающий ящик 2: байты данных 4–7
Смещение 0x1AC, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sTxMailBox[2].TDHR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DATA7 | DATA6 | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DATA5 | DATA4 | ||||||||||||||
- DATA4–DATA7 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.
CAN_RI0R — выходной ящик FIFO 0: идентификатор
Смещение 0x1B0, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFIFOMailBox[0].RIR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| STID | EXID | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EXID | IDE | RTR | — | ||||||||||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| TIME | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DATA3 | DATA2 | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DATA1 | DATA0 | ||||||||||||||
- DATA0–DATA3 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.
CAN_RDH0R — выходной ящик FIFO 0: байты данных 4–7
Смещение 0x1BC, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFIFOMailBox[0].RDHR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DATA7 | DATA6 | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DATA5 | DATA4 | ||||||||||||||
- DATA4–DATA7 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.
CAN_RI1R — выходной ящик FIFO 1: идентификатор
Смещение 0x1C0, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFIFOMailBox[1].RIR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| STID | EXID | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EXID | IDE | RTR | — | ||||||||||||
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| TIME | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DATA3 | DATA2 | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DATA1 | DATA0 | ||||||||||||||
- DATA0–DATA3 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.
CAN_RDH1R — выходной ящик FIFO 1: байты данных 4–7
Смещение 0x1CC, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFIFOMailBox[1].RDHR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DATA7 | DATA6 | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DATA5 | DATA4 | ||||||||||||||
- DATA4–DATA7 (по 8 бита на каждый y, положение — на карте битов) — Байт данных y.
CAN_FMR — режим инициализации фильтров
Смещение 0x200, 32 бит, после сброса 0x2A1C 0E01. В коде: CAN1->FMR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CAN2SB | — | FINIT | ||||||||||||
- CAN2SB (биты 13:8) — Первый банк фильтров CAN2; банки до него принадлежат CAN1.
- FINIT (бит 0) — Режим инициализации фильтров.
CAN_FM1R — режим банков: маска или список
Смещение 0x204, 32 бит, после сброса 0x0000 0000. В коде: CAN1->FM1R.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | FBM27 | FBM26 | FBM25 | FBM24 | FBM23 | FBM22 | FBM21 | FBM20 | FBM19 | FBM18 | FBM17 | FBM16 | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FBM15 | FBM14 | FBM13 | FBM12 | FBM11 | FBM10 | FBM9 | FBM8 | FBM7 | FBM6 | FBM5 | FBM4 | FBM3 | FBM2 | FBM1 | FBM0 |
- FBM0–FBM27 (по биту на каждый y, положение — на карте битов) — Режим банка y: маска или список.
FBMy Значение 0 Идентификатор с маской 1 Список идентификаторов
CAN_FS1R — масштаб банков: 16 или 32 бита
Смещение 0x20C, 32 бит, после сброса 0x0000 0000. В коде: CAN1->FS1R.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | FSC27 | FSC26 | FSC25 | FSC24 | FSC23 | FSC22 | FSC21 | FSC20 | FSC19 | FSC18 | FSC17 | FSC16 | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FSC15 | FSC14 | FSC13 | FSC12 | FSC11 | FSC10 | FSC9 | FSC8 | FSC7 | FSC6 | FSC5 | FSC4 | FSC3 | FSC2 | FSC1 | FSC0 |
- 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.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | FFA27 | FFA26 | FFA25 | FFA24 | FFA23 | FFA22 | FFA21 | FFA20 | FFA19 | FFA18 | FFA17 | FFA16 | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FFA15 | FFA14 | FFA13 | FFA12 | FFA11 | FFA10 | FFA9 | FFA8 | FFA7 | FFA6 | FFA5 | FFA4 | FFA3 | FFA2 | FFA1 | FFA0 |
- FFA0–FFA27 (по биту на каждый y, положение — на карте битов) — FIFO для банка y.
FFAy Значение 0 FIFO 0 1 FIFO 1
CAN_FA1R — включение банков фильтров
Смещение 0x21C, 32 бит, после сброса 0x0000 0000. В коде: CAN1->FA1R.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | FACT27 | FACT26 | FACT25 | FACT24 | FACT23 | FACT22 | FACT21 | FACT20 | FACT19 | FACT18 | FACT17 | FACT16 | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FACT15 | FACT14 | FACT13 | FACT12 | FACT11 | FACT10 | FACT9 | FACT8 | FACT7 | FACT6 | FACT5 | FACT4 | FACT3 | FACT2 | FACT1 | FACT0 |
- FACT0–FACT27 (по биту на каждый y, положение — на карте битов) — Включение банка y.
CAN_F0R1 — банк фильтра 0, регистр 1
Смещение 0x240, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[0].FR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F0R2 — банк фильтра 0, регистр 2
Смещение 0x244, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[0].FR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F1R1 — банк фильтра 1, регистр 1
Смещение 0x248, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[1].FR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F1R2 — банк фильтра 1, регистр 2
Смещение 0x24C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[1].FR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F2R1 — банк фильтра 2, регистр 1
Смещение 0x250, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[2].FR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F2R2 — банк фильтра 2, регистр 2
Смещение 0x254, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[2].FR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F3R1 — банк фильтра 3, регистр 1
Смещение 0x258, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[3].FR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F3R2 — банк фильтра 3, регистр 2
Смещение 0x25C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[3].FR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F4R1 — банк фильтра 4, регистр 1
Смещение 0x260, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[4].FR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F4R2 — банк фильтра 4, регистр 2
Смещение 0x264, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[4].FR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F5R1 — банк фильтра 5, регистр 1
Смещение 0x268, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[5].FR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F5R2 — банк фильтра 5, регистр 2
Смещение 0x26C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[5].FR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F6R1 — банк фильтра 6, регистр 1
Смещение 0x270, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[6].FR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F6R2 — банк фильтра 6, регистр 2
Смещение 0x274, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[6].FR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F7R1 — банк фильтра 7, регистр 1
Смещение 0x278, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[7].FR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F7R2 — банк фильтра 7, регистр 2
Смещение 0x27C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[7].FR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F8R1 — банк фильтра 8, регистр 1
Смещение 0x280, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[8].FR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F8R2 — банк фильтра 8, регистр 2
Смещение 0x284, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[8].FR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F9R1 — банк фильтра 9, регистр 1
Смещение 0x288, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[9].FR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F9R2 — банк фильтра 9, регистр 2
Смещение 0x28C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[9].FR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F10R1 — банк фильтра 10, регистр 1
Смещение 0x290, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[10].FR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F10R2 — банк фильтра 10, регистр 2
Смещение 0x294, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[10].FR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F11R1 — банк фильтра 11, регистр 1
Смещение 0x298, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[11].FR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F11R2 — банк фильтра 11, регистр 2
Смещение 0x29C, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[11].FR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F12R1 — банк фильтра 12, регистр 1
Смещение 0x2A0, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[12].FR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F12R2 — банк фильтра 12, регистр 2
Смещение 0x2A4, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[12].FR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F13R1 — банк фильтра 13, регистр 1
Смещение 0x2A8, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[13].FR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- FB0–FB31 (по биту на каждый y, положение — на карте битов) — Бит y фильтра: идентификатор или маска.
CAN_F13R2 — банк фильтра 13, регистр 2
Смещение 0x2AC, 32 бит, после сброса 0xXXXX XXXX. В коде: CAN1->sFilterRegister[13].FR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FB31 | FB30 | FB29 | FB28 | FB27 | FB26 | FB25 | FB24 | FB23 | FB22 | FB21 | FB20 | FB19 | FB18 | FB17 | FB16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FB15 | FB14 | FB13 | FB12 | FB11 | FB10 | FB9 | FB8 | FB7 | FB6 | FB5 | FB4 | FB3 | FB2 | FB1 | FB0 |
- 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.
Источники
- STMicroelectronics. RM0090: Reference manual (Rev 22) — раздел 32.9: описание регистров, назначение полей и значения после сброса
- 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
- Все регистры STM32F4Блоки периферии и заголовки CMSIS
- RCC — сброс и тактированиеRCC_CR, RCC_PLLCFGR, RCC_CFGR, RCC_CIR, RCC_AHB1RSTR, RCC_AHB2RSTR
- GPIO — порты ввода-выводаGPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_IDR, GPIOx_ODR
- SYSCFG — системная конфигурацияSYSCFG_MEMRMP, SYSCFG_PMC, SYSCFG_EXTICR1, SYSCFG_EXTICR2, SYSCFG_EXTICR3, SYSCFG_EXTICR4
- EXTI — контроллер внешних прерываний и событийEXTI_IMR, EXTI_EMR, EXTI_RTSR, EXTI_FTSR, EXTI_SWIER, EXTI_PR
- USART — последовательные порты USART и UARTUSART_SR, USART_DR, USART_BRR, USART_CR1, USART_CR2, USART_CR3
- SPI — интерфейсы SPI и I2SSPI_CR1, SPI_CR2, SPI_SR, SPI_DR, SPI_CRCPR, SPI_RXCRCR
- I2C — интерфейс I2CI2C_CR1, I2C_CR2, I2C_OAR1, I2C_OAR2, I2C_DR, I2C_SR1
- TIM — таймерыTIMx_CR1, TIMx_CR2, TIMx_SMCR, TIMx_DIER, TIMx_SR, TIMx_EGR
- DMA — контроллеры прямого доступа к памятиDMA_LISR, DMA_HISR, DMA_LIFCR, DMA_HIFCR, DMA_SxCR, DMA_SxNDT
- ADC — аналого-цифровые преобразователиADC_SR, ADC_CR1, ADC_CR2, ADC_SMPR1, ADC_SMPR2, ADC_JOFR1
- IWDG — независимый сторожевой таймерIWDG_KR, IWDG_PR, IWDG_RLR, IWDG_SR
- WWDG — оконный сторожевой таймерWWDG_CR, WWDG_CFR, WWDG_SR
- CRC — блок вычисления CRCCRC_DR, CRC_IDR, CRC_CR
- DBGMCU — регистры отладкиDBGMCU_IDCODE, DBGMCU_CR, DBGMCU_APB1_FZ, DBGMCU_APB2_FZ
- PWR — управление питаниемPWR_CR, PWR_CSR
- FLASH — интерфейс флеш-памятиFLASH_ACR, FLASH_KEYR, FLASH_OPTKEYR, FLASH_SR, FLASH_CR, FLASH_OPTCR
- RTC — часы реального времениRTC_TR, RTC_DR, RTC_CR, RTC_ISR, RTC_PRER, RTC_WUTR
- DAC — цифро-аналоговый преобразовательDAC_CR, DAC_SWTRIGR, DAC_DHR12R1, DAC_DHR12L1, DAC_DHR8R1, DAC_DHR12R2