MicroPython:Библиотеки/pyb/Класс CAN: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
(не показано 5 промежуточных версий 1 участника) | |||
Строка 9: | Строка 9: | ||
Пример использования (работает, даже если ничего не подключено): | Пример использования (работает, даже если ничего не подключено): | ||
<syntaxhighlight lang="python | <syntaxhighlight lang="python"> | ||
from pyb import CAN | from pyb import CAN | ||
can = CAN(1, CAN.LOOPBACK) | can = CAN(1, CAN.LOOPBACK) | ||
Строка 35: | Строка 35: | ||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.setfilter()|CAN.setfilter(bank, mode, fifo, params, *, rtr)]] | * [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.setfilter()|CAN.setfilter(bank, mode, fifo, params, *, rtr)]] | ||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.clearfilter()|CAN.clearfilter(bank)]] | * [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.clearfilter()|CAN.clearfilter(bank)]] | ||
* [[MicroPython:Библиотеки/pyb/Класс CAN/ | * [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.any()|CAN.any(fifo)]] | ||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.recv()|CAN.recv(fifo, list=None, *, timeout=5000)]] | |||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.send()|CAN.send(data, id, *, timeout=0, rtr=False)]] | |||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.rxcallback()|CAN.rxcallback(fifo, fun)]] | |||
* [[MicroPython:Библиотеки/pyb/Класс CAN/ | |||
* | |||
* | |||
== Константы == | == Константы == | ||
* CAN.NORMAL | * [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.NORMAL|CAN.NORMAL]] | ||
* CAN.STOPPED | * [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.LOOPBACK|CAN.LOOPBACK]] | ||
* CAN.LIST16 | * [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.SILENT|CAN.SILENT]] | ||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.SILENT_LOOPBACK|CAN.SILENT_LOOPBACK]] | |||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.STOPPED|CAN.STOPPED]] | |||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.ERROR_ACTIVE|CAN.ERROR_ACTIVE]] | |||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.ERROR_WARNING|CAN.ERROR_WARNING]] | |||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.ERROR_PASSIVE|CAN.ERROR_PASSIVE]] | |||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.BUS_OFF|CAN.BUS_OFF]] | |||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.LIST16|CAN.LIST16]] | |||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.MASK16|CAN.MASK16]] | |||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.LIST32|CAN.LIST32]] | |||
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.MASK32|CAN.MASK32]] | |||
=См.также= | =См.также= |
Текущая версия от 17:31, 24 мая 2023
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Класс CAN – коммуникационная шина CAN[1]
В классе CAN реализован коммуникационный протокол CAN. На физическом уровне он состоит из 2 линий: RX и TX. Для подключения PyBoard к шине CAN нужно использовать CAN-трансивер – чтобы преобразовать сигналы CAN-логики от PyBoard в правильные уровни напряжения на шине.
Пример использования (работает, даже если ничего не подключено):
from pyb import CAN
can = CAN(1, CAN.LOOPBACK)
# задаем фильтр для получения сообщений с id 123, 124, 125 и 126:
can.setfilter(0, CAN.LIST16, 0, (123, 124, 125, 126))
can.send('message!', 123) # отправляем сообщение с ID 123
can.recv(0) # получаем сообщение на FIFO 0
Конструкторы
Методы класса
Методы
- CAN.init(mode, extframe=False, prescaler=100, *, sjw=1, bs1=6, bs2=8, auto_restart=False)
- CAN.deinit()
- CAN.restart()
- CAN.state()
- CAN.info([list])
- CAN.setfilter(bank, mode, fifo, params, *, rtr)
- CAN.clearfilter(bank)
- CAN.any(fifo)
- CAN.recv(fifo, list=None, *, timeout=5000)
- CAN.send(data, id, *, timeout=0, rtr=False)
- CAN.rxcallback(fifo, fun)
Константы
- CAN.NORMAL
- CAN.LOOPBACK
- CAN.SILENT
- CAN.SILENT_LOOPBACK
- CAN.STOPPED
- CAN.ERROR_ACTIVE
- CAN.ERROR_WARNING
- CAN.ERROR_PASSIVE
- CAN.BUS_OFF
- CAN.LIST16
- CAN.MASK16
- CAN.LIST32
- CAN.MASK32