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)