A59 -V1.1版本提交
This commit is contained in:
@ -5,7 +5,7 @@
|
||||
#include "FreeRTOS.h"
|
||||
#include "chip.h"
|
||||
|
||||
//#define CAN_USE_TX_DEMO
|
||||
#define CAN_USE_TX_DEMO
|
||||
|
||||
#define CAN_RX_BUF_NUM 32
|
||||
#define CAN_TX_BUF_NUM 32
|
||||
@ -690,40 +690,66 @@ static void can_txdemo_thread(void *param)
|
||||
{
|
||||
CanPort_t *cap = param;
|
||||
|
||||
// CanMsg txmsg = {0};
|
||||
// txmsg.IDE = CAN_Id_Standard;
|
||||
// txmsg.DLC = 4;
|
||||
// txmsg.Data[0] = 0x11;
|
||||
// txmsg.Data[1] = 0x22;
|
||||
// txmsg.Data[2] = 0x33;
|
||||
// txmsg.Data[3] = 0x44;
|
||||
CanMsg txmsg = {0};
|
||||
txmsg.StdId = 0x200;
|
||||
txmsg.IDE = CAN_Id_Standard;
|
||||
txmsg.DLC = 4;
|
||||
txmsg.Data[0] = 0x11;
|
||||
txmsg.Data[1] = 0x22;
|
||||
txmsg.Data[2] = 0x33;
|
||||
txmsg.Data[3] = 0x44;
|
||||
|
||||
//uint32_t last_time = get_timer(0);
|
||||
txmsg.DLC = 8;
|
||||
txmsg.Data[0] = Get_sys_tcs_on_off()?0x8:0x00;
|
||||
|
||||
for (;;) {
|
||||
txmsg.Data[0] = Get_sys_tcs_on_off()?0x8:0x00;
|
||||
iCanWrite(cap, &txmsg, 1, 0);
|
||||
|
||||
//printf("%d us.\n", get_timer(last_time));
|
||||
//last_time = get_timer(0);
|
||||
vTaskDelay(pdMS_TO_TICKS(1000));
|
||||
vTaskDelay(pdMS_TO_TICKS(100));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
uint8_t can101_flag = 0;
|
||||
static void can_rxdemo_thread(void *param)
|
||||
{
|
||||
CanPort_t *cap = param;
|
||||
int tlv_data_value[8] = {0};
|
||||
|
||||
for (;;) {
|
||||
CanMsg rxmsg[8] = {0};
|
||||
int revlen;
|
||||
int i, j;
|
||||
|
||||
if ((revlen = iCanRead(cap, rxmsg, 8, pdMS_TO_TICKS(200))) > 0) {
|
||||
printf("can receive %d messages:\n", revlen);
|
||||
if ((revlen = iCanRead(cap, rxmsg, 8, pdMS_TO_TICKS(10))) > 0 && (Get_sys_power_on_self_test() == 100)) {
|
||||
for (i = 0; i < revlen; i++) {
|
||||
for (j = 0; j < rxmsg[i].DLC; j++)
|
||||
printf("%.2x, ", rxmsg[i].Data[j]);
|
||||
printf("\n");
|
||||
for (j = 0; j < rxmsg[i].DLC; j++){
|
||||
tlv_data_value[j] = rxmsg[i].Data[j];
|
||||
}
|
||||
// printf("can>> Id = %03x",rxmsg[i].StdId);
|
||||
switch(rxmsg[i].StdId){
|
||||
case 0x37B:
|
||||
tcsworking_event_handing(tlv_data_value);//TCS
|
||||
break;
|
||||
case 0x12B:
|
||||
tcsswitch_event_handing(tlv_data_value);//tcs开关
|
||||
break;
|
||||
case 0x401:
|
||||
break;
|
||||
case 0x402://ECU故障码
|
||||
break;
|
||||
case 0xA5://ABS故障码
|
||||
abs_dtc_event_handing(tlv_data_value);
|
||||
break;
|
||||
case 0xA3://ABS数据
|
||||
break;
|
||||
case 0x101://发送机数据
|
||||
if(can101_flag != 10)
|
||||
can101_flag = 10;
|
||||
speed_event_handing(tlv_data_value);
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -739,13 +765,13 @@ int can_demo(void)
|
||||
return -1;
|
||||
}
|
||||
|
||||
vCanInit(cap, CAN250kBaud, CAN_MODE_NORMAL);
|
||||
vCanInit(cap, CAN500kBaud, CAN_MODE_NORMAL);
|
||||
#if 1
|
||||
CAN_FilterInitTypeDef canfilter = {0};
|
||||
/* 只接收ID的第0位为1的帧 */
|
||||
canfilter.MODE = 1; /* 单滤波器模式 */
|
||||
canfilter.ID = 0x1;
|
||||
canfilter.IDMASK = 0x7fe;
|
||||
canfilter.ID = 0x37B;
|
||||
canfilter.IDMASK = 0x7ff;
|
||||
vCanSetFilter(cap, &canfilter);
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user