mcp2515 - mcp2515 CAN协议控制器驱动#

适配状态未知

备注

本页文档由这个文件自动生成。如有错误,请提交issue或帮忙修改后pr,谢谢!

示例

--注意:因使用了sys.wait()所有api需要在协程中使用
-- 用法实例
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)--标准帧,数据帧
    mcp2515.send_buffer({id = 0x1FFFFFE6,ide = true,rtr = false},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--扩展帧,数据帧
    mcp2515.send_buffer({id = 0x7FF,ide = false,rtr = true},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--标准帧,远程帧
    mcp2515.send_buffer({id = 0x1FFFFFE6,ide = true,rtr = true},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--扩展帧,远程帧

end)

mcp2515.reset()#

mcp2515 复位

参数

返回值

例子

mcp2515.reset()

mcp2515.send_buffer(config,…)#

mcp2515 数据发送

参数

传入值类型

解释

table

config 接收数据参数 id:报文ID ide:是否为扩展帧 rtr:是否为远程帧

number

… 发送数据 数据个数不可大于8

返回值

例子

mcp2515.send_buffer({id = 0x7FF,ide = false,rtr = false},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--标准帧,数据帧
mcp2515.send_buffer({id = 0x1FFFFFE6,ide = true,rtr = false},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--扩展帧,数据帧
mcp2515.send_buffer({id = 0x7FF,ide = false,rtr = true},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--标准帧,远程帧
mcp2515.send_buffer({id = 0x1FFFFFE6,ide = true,rtr = true},0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)--扩展帧,远程帧

mcp2515.receive_buffer()#

mcp2515 数据接收

参数

返回值

返回值类型

解释

number

len 接收数据长度

string

buff 接收数据

table

config 接收数据参数 id:报文ID ide:是否为扩展帧 rtr:是否为远程帧

例子

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 设置模式

参数

传入值类型

解释

number

mode 模式

返回值

例子

mcp2515.mode(mcp2515.REQOP_NORMAL)--进入正常模式

mcp2515.baud(baud)#

mcp2515 设置波特率(注意:需在配置模式使用)

参数

传入值类型

解释

number

baud 波特率

返回值

例子

mcp2515.baud(mcp2515.CAN_500Kbps)

mcp2515.filter(id,ide,shield)#

mcp2515 设置过滤表(注意:需在配置模式使用)

参数

传入值类型

解释

number

id id

bool

ide 是否为扩展帧

bool

shield 是否为屏蔽表

返回值

例子

mcp2515.filter(0x1FF,false,false)

mcp2515.init(spi_id,cs,int,baud)#

mcp2515 初始化

参数

传入值类型

解释

number

spi_id spi端口号

number

cs cs引脚

number

int int引脚

number

baud 波特率

返回值

返回值类型

解释

bool

初始化结果

例子

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)