mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-08 13:03:39 +00:00
54 lines
1.3 KiB
Go
54 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"machine"
|
|
"time"
|
|
)
|
|
|
|
func main() {
|
|
can1 := machine.CAN1
|
|
can1.Configure(machine.CANConfig{
|
|
TransferRate: machine.CANTransferRate500kbps,
|
|
TransferRateFD: machine.CANTransferRate1000kbps,
|
|
Rx: machine.CAN1_RX,
|
|
Tx: machine.CAN1_TX,
|
|
Standby: machine.CAN1_STANDBY,
|
|
})
|
|
|
|
can0 := machine.CAN0
|
|
can0.Configure(machine.CANConfig{
|
|
TransferRate: machine.CANTransferRate500kbps,
|
|
TransferRateFD: machine.CANTransferRate1000kbps,
|
|
Rx: machine.CAN0_RX,
|
|
Tx: machine.CAN0_TX,
|
|
Standby: machine.NoPin,
|
|
})
|
|
|
|
rxMsg := machine.CANRxBufferElement{}
|
|
|
|
for {
|
|
can1.Tx(0x123, []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, false, false)
|
|
can1.Tx(0x789, []byte{0x02, 0x24, 0x46, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, true, false)
|
|
time.Sleep(time.Millisecond * 1000)
|
|
|
|
sz0 := can0.RxFifoSize()
|
|
if sz0 > 0 {
|
|
fmt.Printf("CAN0 %d\r\n", sz0)
|
|
for i := 0; i < sz0; i++ {
|
|
can0.RxRaw(&rxMsg)
|
|
fmt.Printf("-> %08X %X %#v\r\n", rxMsg.ID, rxMsg.DLC, rxMsg.Data())
|
|
}
|
|
}
|
|
|
|
sz1 := can1.RxFifoSize()
|
|
if sz1 > 0 {
|
|
fmt.Printf("CAN1 %d\r\n", sz1)
|
|
for i := 0; i < sz1; i++ {
|
|
can1.RxRaw(&rxMsg)
|
|
fmt.Printf("-> %08X %X %#v\r\n", rxMsg.ID, rxMsg.DLC, rxMsg.Data())
|
|
}
|
|
}
|
|
}
|
|
}
|