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)