Re: About the CAN controller.
Posted: Fri May 12, 2017 7:35 am
Thank you Rudi for the explanation! I will test my board out and see the result.
Thanks iosixllc for the head up.
Beck
Thanks iosixllc for the head up.
Beck
Code: Select all
[folder] library
[folder] CAN_ESP32
[file] CAN.cpp
[file] CAN.h
[folder] incude
[file] CAN_config.h
[file] can_regdef.h
Code: Select all
#include "CAN.h"
CAN_device_t CAN_cfg = {
.speed=CAN_SPEED_500KBPS, // CAN Node baudrade
.tx_pin_id = GPIO_NUM_5, // CAN TX pin
.rx_pin_id = GPIO_NUM_4, // CAN RX pin
.rx_queue=NULL, // FreeRTOS queue for RX frames
};
CAN_frame_t frame;
CAN_frame_t __RX_frame;
long t_old;
void setup() {
// put your setup code here, to run once:
Serial.begin(500000);
//create CAN RX Queue
CAN_cfg.rx_queue = xQueueCreate(10,sizeof(CAN_frame_t));
//start CAN Module
CAN_init();
}
void loop() {
// put your main code here, to run repeatedly:
if ((millis()-t_old)>1000){
t_old=millis();
frame.MsgID=0x3ff;
frame.DLC=8;
frame.data.u8[0]='C';
frame.data.u8[1]='A';
frame.data.u8[2]='N';
frame.data.u8[3]='E';
frame.data.u8[4]='S';
frame.data.u8[5]='P';
frame.data.u8[6]='3';
frame.data.u8[7]='2';
CAN_write_frame(&frame);
}
if(xQueueReceive(CAN_cfg.rx_queue,&__RX_frame, 3*portTICK_PERIOD_MS)==pdTRUE){
Serial.print(millis());
Serial.print("/");
Serial.print(String(__RX_frame.MsgID,HEX));
Serial.print((char)__RX_frame.data.u8[0]);
Serial.print((char)__RX_frame.data.u8[1]);
Serial.print((char)__RX_frame.data.u8[2]);
Serial.print((char)__RX_frame.data.u8[3]);
Serial.print((char)__RX_frame.data.u8[4]);
Serial.print((char)__RX_frame.data.u8[5]);
Serial.print((char)__RX_frame.data.u8[6]);
Serial.println((char)__RX_frame.data.u8[7]);
}
delay(0);
}
Code: Select all
...
2073687/110CAN-NANO
2073690/120CAN-UNO
2073697/110CAN-NANO
2073700/120CAN-UNO
2073708/110CAN-NANO
2073711/120CAN-UNO
2073720/110CAN-NANO
2073723/120CAN-UNO
2073731/110CAN-NANO
2073734/120CAN-UNO
2073741/110CAN-NANO
2073744/120CAN-UNO
2073752/110CAN-NANO
2073755/120CAN-UNO
2073764/110CAN-NANO
2073767/120CAN-UNO
2073775/110CAN-NANO
2073778/120CAN-UNO
2073785/110CAN-NANO
...
Beck-Sisyphus wrote:Hi Rudi and Thomas,
Error report: 'CLEAR_PERI_REG_MASK' and 'SET_PERI_REG_MASK' error