加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

CAN通信显示控制器在汽车左右转向,刹车,车速,测距等方面的应用

05/14 09:29
3751
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
电路板图(3)
  • 方案介绍
  • 相关文件
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

一、项目名称:

CAN通信显示控制器

二、项目概述:

本系统是基于M7内核的STM32H7B3主芯片,主频可达280MHz,内部有两路FDCAN,使用FDCAN1与外部CAN设备进行通信,接收CAN设备数据在显示屏上显示。系统移植了freeRTOS系统和LVGL图形库,采集了汽车的左右转向信号、刹车信号、车速、测距传感器的距离信号。

2.1、系统框图

控制去采集车辆的信号、速度信息及一些控制执行机构等,开发板显示屏显示要获取的信号和数据,通过显示屏可设置设备的参数和控制命令信息等,实现人机交互

2.2、创建任务

freeRTOS系统创建3个任务

2.3、freeRTOS部分代码

void task_create(void)
{
init_usart(115200);
lv_init();
tft_init();
init_touch();

//start_task
xTaskCreate((TaskFunction_t )start_task,
(const char* )"start_task",
(uint16_t )START_STK_SIZE,
(void* )NULL,
(UBaseType_t )START_TASK_PRO,
(TaskHandle_t* )&StartTask_Handler);

vTaskStartScheduler();
}

void start_task(void *pvParameters)
{
taskENTER_CRITICAL();

BinarySemaphore = xSemaphoreCreateBinary();
if(BinarySemaphore == NULL)
{
printf("Binary Sem Create Failed!rn");
}
//gui
xTaskCreate((TaskFunction_t )gui_task,
(const char* )"gui_task",
(uint16_t )GUI_STK_SIZE,
(void* )NULL,
(UBaseType_t )GUI_TASK_PRIO,
(TaskHandle_t* )&GuiTask_Handler);
//task1
xTaskCreate((TaskFunction_t )task1,
(const char* )"task1",
(uint16_t )TASK1_STK_SIZE,
(void* )NULL,
(UBaseType_t )TASK1_PRIO,
(TaskHandle_t* )&Task1Task_Handler);
//task2
xTaskCreate((TaskFunction_t )task2,
(const char* )"task2",
(uint16_t )TASK2_STK_SIZE,
(void* )NULL,
(UBaseType_t )TASK2_PRIO,
(TaskHandle_t* )&Task2Task_Handler);
taskEXIT_CRITICAL();
vTaskDelete(StartTask_Handler);
}

//gui
void gui_task(void *pvParameters)
{
setup_ui(&guider_ui);
events_init(&guider_ui);
while (1)
{
lv_timer_handler();
vTaskDelay(5);
}
}

//task1
void task1(void *pvParameters)
{
uint8_t d=0;
char buf[4];
while (1)
{
printf("task1 run ...rn");
led2_tog();
d++;
run_flag=1;
vTaskDelay(100);
}
}

uint8_t fdcan_txdat[20];
uint8_t fdcan_rxbuf[20];
//task2
void task2(void *pvParameters)
{
uint8_t jj=0;
init_fdcan();
while (1)
{
jj++;
fdcan_txdat[0]=jj;
fdcan_txdat[1]=0x01;
//fdcan_send_msg(fdcan_txdat, FDCAN_DLC_BYTES_8);
if(fdcan_receive_msg(fdcan_rxbuf) !=0 )
{
printf("canrxrn");
xSemaphoreGive( BinarySemaphore );
}
led3_tog();
//printf("task2 run ...rn");
vTaskDelay(20);
}
}

复制代码

三、作品实物图

设备运行的界面1

设备运行的界面2

四、演示视频

视频:https://www.bilibili.com/video/BV1WK411e7u4/?share_source=copy_web&vd_source=5c43653ace8c8d4fcf66f8c04f6574a4

五、项目文档

程序文档: stm32h7b3i_freertos_lvgl8_3_prj_20210119-1.7z (16.19 MB, 下载次数: 1)

 

  • stm32h7b3i_freertos_lvgl8_3_prj_20210119-1.7z

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
DRV8302DCAR 1 Texas Instruments 65-V max 3-phase gate driver with buck regulator, current shunt amplifiers & hardware interface 56-HTSSOP -40 to 125

ECAD模型

下载ECAD模型
$5.84 查看
ADXL345BCCZ-RL 1 Analog Devices Inc 3-Axis, ±2 g/±4 g/±8 g/±16 g Digital Accelerometer

ECAD模型

下载ECAD模型
$6.44 查看
FSS1500NST 1 Honeywell Sensing and Control Analog Circuit,
$71.59 查看

相关推荐

电子产业图谱