mcp2515 - mcp2515 CAN Protocol Controller Driver#
Adaptation status unknown
Note
This page document is automatically generated by this file. If there is any error, please submit issue or help modify pr, thank you!
Example
--Note: due to the use of sys.wait() all apis need to be used in the coroutine
-- Usage Examples
local mcp2515 = require "mcp2515"
-- mcp2515 mcu
-- csk spi_sck
-- si spi_mosi
-- so spi_miso
-- cs spi_cs
-- int gpio
sys.subscribe("mcp2515", function(len,buff,config)
print("mcp2515", len,buff:byte(1,len))
for k, v in pairs(config) do
print(k,v)
end
end)
sys.taskInit(function()
local mcp2515_spi= 0
local mcp2515_cs= pin.PB04
local mcp2515_int= pin.PB01
spi_mcp2515 = spi.setup(mcp2515_spi,nil,0,0,8,10*1000*1000,spi.MSB,1,0)
mcp2515.init(mcp2515_spi,mcp2515_cs,mcp2515_int,mcp2515.CAN_500Kbps)
mcp2515.send_buffer({id = 0x7FF,ide = false,rtr = false},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--standard frame, data frame
mcp2515.send_buffer({id = 0x1FFFFFE6,ide = true,rtr = false},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--Extended Frame, Data Frame
mcp2515.send_buffer({id = 0x7FF,ide = false,rtr = true},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--Standard Frame, Remote Frame
mcp2515.send_buffer({id = 0x1FFFFFE6,ide = true,rtr = true},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--Extended Frame, Remote Frame
end)
mcp2515.reset()#
mcp2515 Reset
Parameters
None
Return Value
None
Examples
mcp2515.reset()
mcp2515.send_buffer(config,…)#
mcp2515 Data sending
Parameters
Incoming Value Type |
Explanation |
---|---|
table |
config Received data parameter id: message ID ide: extended frame rtr: remote frame |
number |
… The number of data to be sent cannot be greater 8 |
Return Value
None
Examples
mcp2515.send_buffer({id = 0x7FF,ide = false,rtr = false},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--standard frame, data frame
mcp2515.send_buffer({id = 0x1FFFFFE6,ide = true,rtr = false},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--Extended Frame, Data Frame
mcp2515.send_buffer({id = 0x7FF,ide = false,rtr = true},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--Standard Frame, Remote Frame
mcp2515.send_buffer({id = 0x1FFFFFE6,ide = true,rtr = true},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--Extended Frame, Remote Frame
mcp2515.receive_buffer()#
mcp2515 Data receiving
Parameters
None
Return Value
return value type |
explanation |
---|---|
number |
len Receive Data Length |
string |
buff Receive data |
table |
config Received data parameter id: message ID ide: extended frame rtr: remote frame |
Examples
sys.subscribe("mcp2515", function(len,buff,config)
print("mcp2515", len,buff:byte(1,len))
for k, v in pairs(config) do
print(k,v)
end
end)
mcp2515.mode(mode)#
mcp2515 Set Mode
Parameters
Incoming Value Type |
Explanation |
---|---|
number |
mode Mode |
Return Value
None
Examples
mcp2515.mode(mcp2515.REQOP_NORMAL)--Enter Normal Mode
mcp2515.baud(baud)#
mcp2515 Set the baud rate (note: need to be used in configuration mode)
Parameters
Incoming Value Type |
Explanation |
---|---|
number |
baud Baud rate |
Return Value
None
Examples
mcp2515.baud(mcp2515.CAN_500Kbps)
mcp2515.filter(id,ide,shield)#
mcp2515 Set up the filter table (note: need to use in configuration mode)
Parameters
Incoming Value Type |
Explanation |
---|---|
number |
id id |
bool |
ide Whether it is an extended frame |
bool |
shield Whether it is a mask table |
Return Value
None
Examples
mcp2515.filter(0x1FF,false,false)
mcp2515.init(spi_id,cs,int,baud)#
mcp2515 Initialization
Parameters
Incoming Value Type |
Explanation |
---|---|
number |
spi_id spi Port number |
number |
cs cs Pin |
number |
int int Pin |
number |
baud Baud rate |
Return Value
return value type |
explanation |
---|---|
bool |
Initialization Results |
Examples
spi_mcp2515 = spi.setup(mcp2515_spi,nil,0,0,8,20*1000*1000,spi.MSB,1,0)
mcp2515.init(mcp2515_spi,mcp2515_cs,mcp2515_int,mcp2515.CAN_500Kbps)