Skip to content

Commit 7598f83

Browse files
authored
Merge pull request #2496 from adafruit/feather_can
Adding CAN Bus example
2 parents d1488fb + dc6ce45 commit 7598f83

File tree

1 file changed

+33
-0
lines changed
  • Feather_CAN_Bus_RP2040_Examples/CircuitPython_CAN_Bus

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2020 Bryan Siepert for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
from time import sleep
5+
import board
6+
from digitalio import DigitalInOut
7+
from adafruit_mcp2515.canio import Message, RemoteTransmissionRequest
8+
from adafruit_mcp2515 import MCP2515 as CAN
9+
10+
11+
cs = DigitalInOut(board.CAN_CS)
12+
cs.switch_to_output()
13+
spi = board.SPI()
14+
15+
can_bus = CAN(
16+
spi, cs, loopback=True, silent=True
17+
) # use loopback to test without another device
18+
while True:
19+
with can_bus.listen(timeout=1.0) as listener:
20+
21+
message = Message(id=0x1234ABCD, data=b"adafruit", extended=True)
22+
send_success = can_bus.send(message)
23+
print("Send success:", send_success)
24+
message_count = listener.in_waiting()
25+
print(message_count, "messages available")
26+
for _i in range(message_count):
27+
msg = listener.receive()
28+
print("Message from ", hex(msg.id))
29+
if isinstance(msg, Message):
30+
print("message data:", msg.data)
31+
if isinstance(msg, RemoteTransmissionRequest):
32+
print("RTR length:", msg.length)
33+
sleep(1)

0 commit comments

Comments
 (0)