A59 -V1.1版本提交

This commit is contained in:
2024-10-10 17:41:53 +08:00
parent 16b6433a98
commit 5f032cd320
903 changed files with 171909 additions and 22876 deletions

View File

@ -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