CAN bus:修訂間差異
出自flip the world
已建立頁面,內容為 "== CAN TRANSCEIVER Module - SN65HVD251 == border|350px|CAN TRANSCEIVER Module File:CAN_TRANSCEIVER_Module_01.jpg|CAN TRANSCEIVE…" |
Refactor: add [[Category:Connectivity
]] |
||
| 第74行: | 第74行: | ||
== Reference == | == Reference == | ||
* [https://developer.mbed.org/handbook/CAN, ARMmbed CAN] | * [https://developer.mbed.org/handbook/CAN, ARMmbed CAN] | ||
[[Category:Connectivity]] | |||
2026年8月21日 (五) 13:17的最新修訂
CAN TRANSCEIVER Module - SN65HVD251
Setup CAN bus
- loops the data between the mbed LPC1768's two CAN buses.
Code
#include "mbed.h"
#include "CAN.h"
Ticker ticker;
DigitalOut led1(LED1);
DigitalOut led2(LED2);
CAN can1(p9, p10);
CAN can2(p30, p29);
Serial pc(USBTX, USBRX);
char counter = 0;
void send() {
//pc.printf("send()\n");
if(can1.write(CANMessage(1337, &counter, 1))) {
//pc.printf("wloop()\n");
counter++;
//pc.printf("Message sent: %d\n", counter);
}
led1 = !led1;
}
int main() {
pc.printf("main()\n");
ticker.attach(&send, 1);
CANMessage msg;
while(1) {
//pc.printf("loop()\n");
if(can2.read(msg)) {
pc.printf("Message received: %4d\n\r", msg.data[0]);
led2 = !led2;
}
wait(0.2);
}
}
Result
- stty -F /dev/ttyACM0 speed 9600 -crtscts cs8 -cstopb -parenb -icrnl
- cat < /dev/ttyACM0
The following will using CAN bus to send counting message from 0 to 255 and repeat again: ... Message received: 246 Message received: 247 Message received: 248 Message received: 249 Message received: 250 Message received: 251 Message received: 252 Message received: 253 Message received: 254 Message received: 255 Message received: 0 Message received: 1 Message received: 2 Message received: 3 Message received: 4 Message received: 5 ...


