82 lines
1.7 KiB
Markdown
82 lines
1.7 KiB
Markdown
# CAN Module
|
|
| Since | Origin / Contributor | Maintainer | Source |
|
|
| :----- | :-------------------- | :---------- | :------ |
|
|
| 2017-04-27 | [@ThomasBarth](https://github.com/ThomasBarth/ESP32-CAN-Driver/), zelll | | [can.c](../../components/modules/can.c)|
|
|
|
|
The CAN module provides access to the in-built CAN controller.
|
|
|
|
|
|
## can.send()
|
|
Send a frame.
|
|
|
|
#### Syntax
|
|
`can.send(format, msg_id, data)`
|
|
|
|
#### Parameters
|
|
- `format` Frame format. `can.STANDARD_FRAME` or `can.EXTENDED_FRAME`
|
|
- `msg_id` CAN Messge ID
|
|
- `data` CAN data, up to 8 bytes
|
|
|
|
#### Returns
|
|
`nil`
|
|
|
|
|
|
## can.setup()
|
|
Configuration CAN controller.
|
|
|
|
#### Syntax
|
|
`can.setup(config, callback)`
|
|
|
|
#### Parameters
|
|
- `config` table.
|
|
- `speed` kbps. One of following value: `1000`, `800`, `500`, `250`, `100`.
|
|
- `tx` Pin num for TX.
|
|
- `rx` Pin num for RX.
|
|
- `dual_filter` `true` dual filter mode, `false` single filter mode (default)
|
|
- `code` 4-bytes integer. Use this with mask to filter CAN frame. Default: `0`. See [SJA1000](http://www.nxp.com/documents/data_sheet/SJA1000.pdf)
|
|
- `mask` 4-bytes integer. Default: `0xffffffff`
|
|
- `callback` function to be called when CAN data received.
|
|
- `format` Frame format. `can.STANDARD_FRAME` or `can.EXTENDED_FRAME`
|
|
- `msg_id` CAN Message ID
|
|
- `data` CAN data, up to 8 bytes
|
|
|
|
#### Returns
|
|
`nil`
|
|
|
|
#### Example
|
|
```lua
|
|
can.setup({
|
|
speed = 1000,
|
|
tx = 5,
|
|
rx = 4,
|
|
dual_filter = false,
|
|
code = 0,
|
|
mask = 0xffffffff
|
|
}, function(format, msg_id, data) end)
|
|
```
|
|
|
|
## can.start()
|
|
Start CAN controller.
|
|
|
|
#### Syntax
|
|
`can.start()`
|
|
|
|
#### Parameters
|
|
none
|
|
|
|
#### Returns
|
|
`nil`
|
|
|
|
|
|
## can.stop()
|
|
Stop CAN controller.
|
|
|
|
#### Syntax
|
|
`can.stop()`
|
|
|
|
#### Parameters
|
|
none
|
|
|
|
#### Returns
|
|
`nil`
|