引腳配置
此實(shí)例選擇CAN0進(jìn)行配置。
三、外設(shè)配置
對(duì)于DMA,其采用的固定映射,對(duì)于通道0至通道15,其映射一部分外設(shè),通道16至通道31映射一部分外設(shè),所以對(duì)于外設(shè)要使用DMA,也需要注意此項(xiàng)。添加外設(shè):
CAN基礎(chǔ)配置:
CAN的用戶回調(diào)配置:
中斷配置:
配置完畢后更新代碼:
四、部分代碼展示
/** * @brief FlexCAN0中斷回調(diào)函數(shù) * * 該函數(shù)處理FlexCAN0模塊的各類(lèi)事件,根據(jù)事件類(lèi)型執(zhí)行相應(yīng)的處理邏輯。 * 主要負(fù)責(zé)接收和發(fā)送CAN消息。 * * @param instance CAN實(shí)例號(hào),此處固定為FlexCAN0。 * @param eventType 事件類(lèi)型,指示當(dāng)前中斷的原因。 * @param buffIdx 接收緩沖區(qū)索引,指示接收消息所在的緩沖區(qū)。 * @param flexcanState FlexCAN狀態(tài)結(jié)構(gòu)體指針,包含F(xiàn)lexCAN模塊的當(dāng)前狀態(tài)信息。 */void FlexCAN0_Callback(uint8 instance, Flexcan_Ip_EventType eventType, uint32 buffIdx, const Flexcan_Ip_StateType *flexcanState){ /* 忽略參數(shù),防止編譯器警告 */ (void)flexcanState; (void)instance; (void)buffIdx;
/* 根據(jù)事件類(lèi)型執(zhí)行相應(yīng)的處理邏輯 */ switch(eventType) { case FLEXCAN_EVENT_RX_COMPLETE: { txData[7] = 0; /* 設(shè)置消息ID類(lèi)型為標(biāo)準(zhǔn)ID,準(zhǔn)備發(fā)送消息 */ tx_info.msg_id_type = FLEXCAN_MSG_ID_STD; /* 發(fā)送消息,并從接收緩沖區(qū)讀取新消息 */ FlexCAN_Ip_Send(INST_FLEXCAN_0, TX_MB_IDX, &tx_info, MSG_ID, (uint8 *)&txData); FlexCAN_Ip_Receive(INST_FLEXCAN_0, RX_MB_IDX, &rxData, FALSE); }break; case FLEXCAN_EVENT_RXFIFO_COMPLETE: { /* RXFIFO完成事件的處理邏輯 */ }break; case FLEXCAN_EVENT_TX_COMPLETE: { /* TX完成事件的處理邏輯 */ }break; case FLEXCAN_EVENT_ENHANCED_RXFIFO_COMPLETE: { /* 增強(qiáng)型RXFIFO完成事件的處理邏輯 */ }break; case FLEXCAN_EVENT_ENHANCED_RXFIFO_WATERMARK: { /* 增強(qiáng)型RXFIFO水位標(biāo)記事件的處理邏輯 */ }break; case FLEXCAN_EVENT_DMA_COMPLETE: { txData[7] = 11; /* DMA完成事件的處理邏輯,發(fā)送消息并從FIFO讀取數(shù)據(jù) */ tx_info.msg_id_type = FLEXCAN_MSG_ID_STD; FlexCAN_Ip_Send(INST_FLEXCAN_0, TX_MB_IDX, &tx_info, MSG_ID, (uint8 *)&txData); FlexCAN_Ip_RxFifo(INST_FLEXCAN_0, &rxFifoData); }break; default: { /* 默認(rèn)情況下,不做任何處理 */ }break; }}
五、注意事項(xiàng)
中斷配置回調(diào)函數(shù)注意事項(xiàng):
-
車(chē)載
+關(guān)注
關(guān)注
18文章
638瀏覽量
83946 -
dma
+關(guān)注
關(guān)注
3文章
576瀏覽量
103250 -
VCU
+關(guān)注
關(guān)注
17文章
84瀏覽量
21084
發(fā)布評(píng)論請(qǐng)先 登錄
我有一塊海思 9610A 芯片的問(wèn)界M9的車(chē)載娛樂(lè)主機(jī),怎么把這個(gè)當(dāng)成開(kāi)發(fā)板重裝系統(tǒng)
目前新項(xiàng)目要用到midi音頻播放IC,沒(méi)有有推薦的,封裝要小,不需外掛flash
整車(chē)控制器VCU EOL 測(cè)試系統(tǒng)
如何獲取和添加vcu118板信息到工具?
VCU 108超大規(guī)模virtex 7評(píng)估板未在vivado_hls板中列出
【HarmonyOS HiSpark AI Camera】智能車(chē)載終端
整車(chē)VCU技術(shù)和開(kāi)發(fā)流程剖析VCU
VCU(整車(chē)控制器)簡(jiǎn)介
VCU信號(hào)的類(lèi)型和VCU信號(hào)的應(yīng)用

如何解決PWM使用的DMA通道與串口接收的DMA通道撞車(chē)問(wèn)題

PWM使用的DMA通道與串口接收的DMA通道撞車(chē)了,咋辦?

Google通過(guò)自研VCU芯片讓視頻更流程
磚頭“大哥大”大改造,你會(huì)為它買(mǎi)單嗎?
從0到1實(shí)現(xiàn)VCU:新能源汽車(chē)整車(chē)控制器

新能源汽車(chē)之整車(chē)控制器VCU到底有什么用?

評(píng)論