RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用MM32F0160 FlexCAN-FD接口實現(xiàn)CAN FD通信

靈動MM32MCU ? 來源:靈動MM32MCU ? 2023-12-14 16:44 ? 次閱讀

1?FlexCAN-FD簡介

MM32F0160 系列 MCU 具有一個 FlexCAN 模塊,該模塊遵循 ISO 11898-1 標準、 CAN FD 和 CAN 2.0B 協(xié)議規(guī)范,不僅兼容傳統(tǒng)CAN,還支持CAN FD模式。在CAN-FD模式下,可實現(xiàn)最高8 Mbps的FD模式通信速率,支持標準幀(11位標識符)和擴展幀(29位標識符),支持最大64字節(jié)有效負載,并且具有非常靈活的用于傳輸和接收的郵箱系統(tǒng)。

使用CAN FD較傳統(tǒng)CAN具有如下優(yōu)點:

(1)增加了數(shù)據長度,在發(fā)送長數(shù)據時,軟件更加簡單高效,滿足更高的數(shù)據吞吐量。

(2)提高了傳輸速率,使得延遲時間更短,具有更好的實時性,滿足更高的帶寬。

(3)擴展了CRC場,為數(shù)據內容提供了更好的保護,增加了系統(tǒng)安全性。

本章節(jié)初步學習使用MM32F0160 FlexCAN-FD接口實現(xiàn)CAN FD通信,相關例程參考靈動官網的LibSamples或在此基礎上修改。關于CAN FD協(xié)議不再進行詳細介紹,感興趣的小伙伴可以查閱相關資料增進了解。

2?CAN FD幀

ISO 11898-1標準指定了符合ISO 11898-1(2003)標準的經典幀格式,并引入了CAN FD(Flexible Data Rate)幀格式。經典幀格式支持高達1Mbps的比特率,以及每幀8字節(jié)的有效負載。FD幀格式支持超過1Mbps的比特率,以及每幀超過8字節(jié)的有效負載。FlexCAN可以收發(fā)CAN FD和經典CAN格式交替的報文。

CAN FD 幀中有三個附加的控制位:

EDL:擴展數(shù)據長度位,支持更多的數(shù)據負載。

BRS比特率切換位:決定CAN FD幀是否切換比特率。

ESI錯誤狀態(tài)指示:錯誤主動節(jié)點發(fā)送顯性,錯誤被動節(jié)點發(fā)送隱性。

CAN FD格式不支持遠程幀,遠程幀總是以經典CAN格式傳輸。接收到FD幀并匹配郵箱時,接收報文緩沖區(qū)的RTR位將被無效化。

CAN FD報文數(shù)據字段可超過8字節(jié),支持12至64字節(jié)。CAN FD報文可切換比特率,使CAN幀的控制字段、數(shù)據字段和CRC字段比特率高于幀的開始和結束。

CAN FD幀結構(部分)如下圖所示:

ba96eca8-9a5c-11ee-8b88-92fbcf53809c.pngba9e1c76-9a5c-11ee-8b88-92fbcf53809c.png

CAN FD幀從SOF(幀起始)到BRS的仲裁段,以標稱比特率傳輸;從BRS到CRC界定符的數(shù)據段,以數(shù)據比特率傳輸;從CRC界定符到Intermission位,傳輸恢復為標稱比特率。如果CAN FD幀中BRS為隱性,則位時序在BRS的采樣點發(fā)生變化。BRS位之前,CAN FD仲裁段的標稱位時序由CAN_CBT或CAN_CTRL1寄存器定義;檢測到隱性BRS時,數(shù)據位時序由CAN_FDCBT 寄存器定義。

3?協(xié)議時序

FlexCAN具有單獨配置CAN FD協(xié)議時序的寄存器,CAN FD位時序寄存器(CAN_FDCBT)存儲用于控制位時序參數(shù)的字段:FPRESDIV、FPROPSEG、FPSEG1、FPSEG2和FRJW。

CAN FD報文數(shù)據段的FDPRESDIV定義了串行時鐘(Sclock)的預分頻,見下列方程。串行時鐘的周期定義了用于構成CAN FD波形的時間單位Tq,Tq為CAN引擎所能處理的最小時間單元。

bab129ba-9a5c-11ee-8b88-92fbcf53809c.jpg

比特率定義了接收或傳輸 CAN FD報文的速率,公式如下:

bac4a7ce-9a5c-11ee-8b88-92fbcf53809c.jpg

位時間可以細分為三個部分:

同步段(SYNC_SEG):1Tq的固定長度;信號邊沿出現(xiàn)在該段內。

時間段1:包括傳播段和相位段1。FlexCAN 使用 CAN_FDCBT寄存器的FDPROPSEG和FDPSEG1字段,其總和(+1)為2 ~ 39Tq。

時間段 2:包括相位段2。其值(+1)為2 ~ 8Tq。時間段2不能小于信息處理時間2Tq。

當采用CAN FD位作為持續(xù)時間的衡量標準時,一個CAN FD位的外設時鐘個數(shù)NumClkBit為:

bad816a6-9a5c-11ee-8b88-92fbcf53809c.jpg

fCANFDCLK為PE時鐘,單位Hz。

fSYS為系統(tǒng)(CHI)時鐘頻率,單位Hz。

4?報文緩沖區(qū)

MM32F0160 FlexCAN遵循CAN FD協(xié)議規(guī)范,該模塊已經設計了對應的CAN FD報文緩沖區(qū)結構。經典 CAN 幀使用傳統(tǒng)型 Rx FIFO,CAN FD幀使用增強型Rx FIFO。下圖為FlexCAN所使用的報文緩沖區(qū)結構,包括CAN 2.0B的兩種幀格式:擴展幀(29位ID)和標準幀(11位ID)。每個報文緩沖區(qū)由16、24、40或72字節(jié)組成,其中包括8、16、32或64字節(jié)的數(shù)據。郵箱使用 0x80 ~ 0x27F 的內存區(qū)域。

bae85bf6-9a5c-11ee-8b88-92fbcf53809c.png

EDL — 擴展數(shù)據長度,EDL位區(qū)分CAN幀和CAN FD 幀。

BRS — 比特率切換,定義是否在 CAN FD 幀內切換比特率。

ESI — 錯誤狀態(tài)指示,表示發(fā)送節(jié)點是錯誤主動還是錯誤被動。

CODE — 報文緩沖區(qū)代碼,CODE 字段可以被 CPU 和 FlexCAN 讀寫,用作報文緩沖區(qū)匹配和仲裁過程的一部分。編碼詳見用戶手冊。

SRR — 替代遠程請求,

1:擴展幀格式傳輸時,必須使用隱性位。

0:擴展幀格式傳輸時,顯性位無效。

只用于擴展幀格式。傳輸時(發(fā)送緩沖區(qū))該位必須設置為 1,且將會和從 CAN 總線上接收到的值一起存儲于接收緩沖區(qū)。該位可以被接收為隱性或顯性,如果 FlexCAN 以顯性位接收,則認為仲裁丟失。

IDE — ID擴展位,

1:擴展幀;

0:標準幀。

RTR — 遠程傳輸請求

1:如果是發(fā)送MB,則表示當前MB可能有一個遠程幀待發(fā)送;如果是接收MB,則接收到的遠程幀將會被存儲;

0:表示當前的M 中有一個數(shù)據幀待傳輸。在接收MB中,可能會被用于匹配過程。

如果FlexCAN傳輸1(隱性),接收到0(顯性),則認為仲裁丟失。如果 RTR傳輸0(顯性),接收到1(隱性),則認為是位錯誤。如果接收到的值與發(fā)送值相同,則被認為是一次成功的位傳輸。

注:配置CAN FD幀時RTR位必須為0。

DLC — 數(shù)據字節(jié)長度

該4位字段為發(fā)送/接收數(shù)據的長度(以字節(jié)為單位),位于偏移地址為0x8到0xF的MB空間。

接收階段,該字段由FlexCAN寫入,從接收幀的DLC字段復制而得;

傳輸階段,該字段由CPU寫入,且與要傳輸?shù)膸腄LC字段相對應。

當RTR = 1 時,被傳輸?shù)膸瑸檫h程幀,不包含數(shù)據字段(DLC 字段的設置無效,參見表格“有效數(shù)據字節(jié)”)。

TIME STAMP — 自由運行計時器時間戳

該16位字段為自由運行計時器的復制,當標識符字段開頭出現(xiàn)在CAN總線上時進行捕獲。

PRIO — 本地優(yōu)先級

該 3 位字段只有當MCR.LPRIO_EN被置位時才有效,且只針對傳輸郵箱。用于附加到 ID 來定義傳輸優(yōu)先級,不會被傳輸。

ID — 幀標識符

標準幀格式,只有高 11 位(28 ~ 18)用于識別接收或發(fā)送幀,忽略低 18 位。擴展幀格式,所有位都用于識別傳輸或接收幀。

DATA BYTE0 ~ 63 — 數(shù)據字段

數(shù)據幀最多可以使用64個字節(jié),取決于為MB選擇的有效負載大小。從總線上接收到的幀以該幀被接收時的格式進行存放。只有n小于DLC時,DATA BYTE(n)才有效。

bbbf1330-9a5c-11ee-8b88-92fbcf53809c.png

5?MB 內存映射

FlexCAN內存緩沖區(qū)的內存映射如下表所示:

bbdda9f8-9a5c-11ee-8b88-92fbcf53809c.png

6?FlexCAN-FD API

從靈動官網下載的FLEXCAN固件庫中定義了FD相關的API函數(shù)如下:

bbf91e22-9a5c-11ee-8b88-92fbcf53809c.jpg

7?FlexCAN-FD通信

配置FlexCAN為CAN FD模式,通過中斷接收和發(fā)送報文。

7.1 FlexCAN配置

voidFlexCAN_Configure(void)
{
GPIO_InitTypeDefGPIO_InitStruct;
NVIC_InitTypeDefNVIC_InitStruct;

flexcan_config_tFlexCAN_ConfigStruct;
flexcan_rx_mb_config_tFlexCAN_RxMB_ConfigStruct;

RCC_ClocksTypeDefRCC_Clocks;

RCC_GetClocksFreq(&RCC_Clocks);

RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOB,ENABLE);

RCC_APB1PeriphClockCmd(RCC_APB1ENR_FLEXCAN,ENABLE);

GPIO_PinAFConfig(GPIOB,GPIO_PinSource8,GPIO_AF_3);
GPIO_PinAFConfig(GPIOB,GPIO_PinSource9,GPIO_AF_3);

GPIO_StructInit(&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_FLOATING;
GPIO_Init(GPIOB,&GPIO_InitStruct);

GPIO_StructInit(&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOB,&GPIO_InitStruct);

NVIC_InitStruct.NVIC_IRQChannel=FLEX_CAN_IRQn;
NVIC_InitStruct.NVIC_IRQChannelPriority=0;
NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStruct);

FLEXCAN_GetDefaultConfig(&FlexCAN_ConfigStruct);

FlexCAN_ConfigStruct.baudRate=1000000U;/*1Mbps*/
FlexCAN_ConfigStruct.baudRateFD=2000000U;/*2Mbps*/
FlexCAN_ConfigStruct.clkSrc=Enum_Flexcan_ClkSrc1;
FlexCAN_ConfigStruct.enableLoopBack=false;
FlexCAN_ConfigStruct.disableSelfReception=true;
FlexCAN_ConfigStruct.enableIndividMask=true;
FLEXCAN_Init(FLEX_CAN1,&FlexCAN_ConfigStruct);

FLEXCAN_EnterFreezeMode(FLEX_CAN1);

FLEX_CAN1->MCR|=1<CTRL1&=(~CAN_CTRL1_SMP(1));

FLEXCAN_ExitFreezeMode(FLEX_CAN1);

/*Baudratecalculatebyautomatically*/
FLEXCAN_FDCalculateImprovedTimingValues(FlexCAN_ConfigStruct.baudRate,FlexCAN_ConfigStruct.baudRateFD,
RCC_Clocks.PCLK1_Frequency,&FlexCAN_ConfigStruct.timingConfig);

FLEXCAN_FDInit(FLEX_CAN1,&FlexCAN_ConfigStruct,FLEXCAN_64BperMB,true);

FLEXCAN_SetFDTxMbConfig(FLEX_CAN1,1,true);
FLEXCAN_SetFDTxMbConfig(FLEX_CAN1,3,true);

FlexCAN_RxMB_ConfigStruct.id=FLEXCAN_ID_STD(0x111);
FlexCAN_RxMB_ConfigStruct.format=Enum_Flexcan_FrameFormatStandard;
FlexCAN_RxMB_ConfigStruct.type=Enum_Flexcan_FrameTypeData;
FLEXCAN_SetFDRxMbConfig(FLEX_CAN1,0,&FlexCAN_RxMB_ConfigStruct,true);

FLEXCAN_SetRxIndividualMask(FLEX_CAN1,0,FLEXCAN_RX_MB_STD_MASK(0xFFF,0,0));

/*EnableMB0Interrupt*/
FLEX_CAN1->IMASK1|=(0x01U<IMASK1|=(0x01U<

配置PB8、PB9復用為FlexCAN的RX、TX引腳;

配置CAN1Mbps和CANFD2Mbps、MB選擇64字節(jié)負載;

配置NVIC中斷;

配置MB1、MB3為發(fā)送郵箱;

配置MB0、MB2為接收郵箱;

MB0僅接收ID為0x111的標準幀;

MB2僅接收ID為0x222的擴展幀。

7.2 發(fā)送標準幀報文

voidFlexCAN_FD_SendStandardFrameMessage(uint32_tID,uint8_t*Buffer,uint8_tLength)
{
flexcan_fd_frame_tFlexCAN_FD_FrameStruct;

FlexCAN_FD_FrameStruct.length=Length;
FlexCAN_FD_FrameStruct.type=(uint8_t)Enum_Flexcan_FrameTypeData;
FlexCAN_FD_FrameStruct.format=(uint8_t)Enum_Flexcan_FrameFormatStandard;
FlexCAN_FD_FrameStruct.brs=1;
FlexCAN_FD_FrameStruct.edl=1;
FlexCAN_FD_FrameStruct.id=ID;

for(uint8_ti=0;i

flexcan_fd_frame_t是按照FlexCAN MB結構定義的結構體,將要發(fā)送的標準幀按照幀結構依次設置結構體的各字段,接著寫入MB1發(fā)送郵箱。

7.3 發(fā)送擴展幀報文

voidFlexCAN_FD_SendExtendFrameMessage(uint32_tID,uint8_t*Buffer,uint8_tLength)
{
flexcan_fd_frame_tFlexCAN_FD_FrameStruct;

FlexCAN_FD_FrameStruct.length=Length;
FlexCAN_FD_FrameStruct.type=(uint8_t)Enum_Flexcan_FrameTypeData;
FlexCAN_FD_FrameStruct.format=(uint8_t)Enum_Flexcan_FrameFormatExtend;
FlexCAN_FD_FrameStruct.brs=1;
FlexCAN_FD_FrameStruct.edl=1;
FlexCAN_FD_FrameStruct.id=ID;

for(uint8_ti=0;i

同上,將要發(fā)送的擴展幀按照幀結構依次設置結構體的各字段,接著寫入MB3發(fā)送郵箱。

7.4 獲取報文并發(fā)送

voidFlexCAN_FD_RxMB_Handler(uint8_tIndex)
{
uint8_tBuffer[64];
flexcan_fd_frame_tFlexCAN_FD_FrameStruct;

FLEXCAN_ReadFDRxMb(FLEX_CAN1,Index,&FlexCAN_FD_FrameStruct);

for(uint8_ti=0;i>0x18)&0xFF;
Buffer[i*4+1]=(FlexCAN_FD_FrameStruct.dataWord[i]>>0x10)&0xFF;
Buffer[i*4+2]=(FlexCAN_FD_FrameStruct.dataWord[i]>>0x08)&0xFF;
Buffer[i*4+3]=(FlexCAN_FD_FrameStruct.dataWord[i]>>0x00)&0xFF;
}

if(Index==0)
{
FlexCAN_FD_SendStandardFrameMessage((FlexCAN_FD_FrameStruct.id>>CAN_ID_STD_SHIFT),Buffer,FlexCANFD_TX_64Bytes_DataLen);
}
else
{
FlexCAN_FD_SendExtendFrameMessage((FlexCAN_FD_FrameStruct.id>>CAN_ID_EXT_SHIFT),Buffer,FlexCANFD_TX_64Bytes_DataLen);
}
}

讀接收郵箱(Index),獲取CAN FD報文中的數(shù)據,并發(fā)送該報文。

7.5 中斷服務子程序

voidFlexCAN_IRQHandler(void)
{
uint32_tu32flag=1;

/*MB0*/
if(FLEXCAN_GetMbStatusFlags(FLEX_CAN1,u32flag<

MB0、MB2完成接收調用MB接收函數(shù),獲取報文并通過MB1、MB3發(fā)送。MB1、MB3完成傳輸,清除對應標志。

7.6 FlexCAN_FD中斷示例

voidFlexCAN_FD_Interrupt_Sample(void)
{
uint8_tBuffer[64]=
{
0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xAA,
0xAA,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x55,
0x55,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xAA,
0xAA,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x88,
};

printf("
Test%s",__FUNCTION__);

FlexCAN_Configure();

while(1)
{
FlexCAN_FD_SendStandardFrameMessage(0x214,Buffer,FlexCANFD_TX_64Bytes_DataLen);

PLATFORM_LED_Toggle(LED1);
PLATFORM_DelayMS(1000);
}
}

調用FlexCAN_Configure(),在while中間隔1s中發(fā)送標準幀報文,幀ID為0x214,數(shù)據為定義好的Buffer[64]。

在主函數(shù)中調用FlexCAN_FD_Interrupt_Sample()。

8?驗證

連接CAN調試工具,配置波特率CAN 1Mbps、CAN FD 2Mbps,觀測上位機軟件:

bc09adaa-9a5c-11ee-8b88-92fbcf53809c.png

接收區(qū)間隔1s接收到一次FD報文,ID為0x214。

在發(fā)送區(qū)發(fā)送標準幀F(xiàn)D報文,ID為0x111,發(fā)送擴展幀F(xiàn)D報文,ID為0x222,各發(fā)送5次:

bc2541d2-9a5c-11ee-8b88-92fbcf53809c.png

每發(fā)送1次報文,接收區(qū)接收到1次該ID的報文,和程序預期一致。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17123

    瀏覽量

    350973
  • 接口
    +關注

    關注

    33

    文章

    8575

    瀏覽量

    151014
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2744

    瀏覽量

    463609
  • 通信
    +關注

    關注

    18

    文章

    6024

    瀏覽量

    135949
  • 比特率
    +關注

    關注

    1

    文章

    28

    瀏覽量

    10609

原文標題:靈動微課堂 (第279講)|MM32F0160 FlexCAN-FD 通信

文章出處:【微信號:MindMotion-MMCU,微信公眾號:靈動MM32MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何實現(xiàn)CANCAN FD的升級?

    自動駕駛技術迅速發(fā)展,車輛中的CAN總線已經無法滿足數(shù)據吞吐量和傳輸速度的要求,CAN總線的加速升級版——CAN FD技術正在逐漸替代現(xiàn)有網絡。為了進一步了解
    的頭像 發(fā)表于 09-20 09:31 ?9044次閱讀

    MM32F0160FlexCAN FD位時間采樣點如何計算?

    FlexCAN模塊是一個通信控制器,擴展了CAN FD功能,遵循ISO 11898-1標準、CAN FD
    的頭像 發(fā)表于 11-09 17:43 ?1740次閱讀
    <b class='flag-5'>MM32F0160</b>的<b class='flag-5'>FlexCAN</b> <b class='flag-5'>FD</b>位時間采樣點如何計算?

    一文淺析汽車CAN-FD總線的通信應用

    ,但隨著ADAS 功能水平升級,這些 ADAS 功能的實現(xiàn)對網絡通信有著更高性能、低時延、高帶寬及ASIL B+的功能安全要求,傳統(tǒng)CAN通信已無法滿足。一汽紅旗在本車型上首次應用
    發(fā)表于 02-14 14:22

    S32G2 FlexCAN CAN FD使用DMA接收字節(jié)順序錯誤的原因?怎么解決?

    我在 goldbox 上以 DMA 模式使用 flexcan 時遇到字節(jié)字節(jié)序錯誤。因為沒有DMA,發(fā)送正常。當接收到第一幀CAN FD報文時,報文中的字節(jié)順序沒有問題,可以接收到CAN
    發(fā)表于 04-27 07:09

    FlexCAN與普通的CAN有區(qū)別嗎?CAN FDCAN有什么區(qū)別?

    FlexCAN與普通的CAN有區(qū)別嗎,CAN FDCAN有什么區(qū)別。
    發(fā)表于 11-08 08:30

    can總線一幀多少字節(jié)多少位_MCU擴展CAN/CAN FD接口方案MCP2518FD+ATA6563

    “本文介紹MCU通過SPI串口擴展CAN/CAN FD接口擴展方案,該方案基于MCP2518FD+ATA6563,可快速部署應用于實際項目。
    發(fā)表于 10-29 11:21 ?18次下載
    <b class='flag-5'>can</b>總線一幀多少字節(jié)多少位_MCU擴展<b class='flag-5'>CAN</b>/<b class='flag-5'>CAN</b> <b class='flag-5'>FD</b><b class='flag-5'>接口</b>方案MCP2518<b class='flag-5'>FD</b>+ATA6563

    CANCAN FD如何解決彼此的通訊

    因為受制于產品的穩(wěn)定性考驗,改造成本等問題,沒法快速全面普及CAN FD。另外,在2012年底提出CAN FD到2015年中成為ISO CAN
    發(fā)表于 10-18 14:20 ?3177次閱讀

    簡單介紹基于CAN-FD的診斷通信傳輸層

    CAN-FDCAN withFlexible Data-Rate的簡稱,從名稱可以看出,CAN-FD的數(shù)據速率是可變的。
    發(fā)表于 11-10 17:46 ?2192次閱讀

    靈動股份全新MM32F0160系列MCU發(fā)布

    靈動股份發(fā)布全新MM32F0160 系列 MCU,其搭載 72MHz Arm Cortex-M0 處理器,內置 128KB Flash,16KB RAM,配備高速 ADC、USB、CAN-FD
    的頭像 發(fā)表于 12-20 13:55 ?758次閱讀

    MM32F0160 產品手冊(中文版)

    MM32F0160 產品手冊(中文版)
    發(fā)表于 02-22 18:50 ?0次下載
    <b class='flag-5'>MM32F0160</b> 產品手冊(中文版)

    MM32F0160 產品手冊(英文版)

    MM32F0160 產品手冊(英文版)
    發(fā)表于 02-22 18:51 ?0次下載
    <b class='flag-5'>MM32F0160</b> 產品手冊(英文版)

    MM32F0160 用戶手冊(中文版)

    MM32F0160 用戶手冊(中文版)
    發(fā)表于 02-22 18:51 ?0次下載
    <b class='flag-5'>MM32F0160</b> 用戶手冊(中文版)

    MM32F0160 用戶手冊(英文版)

    MM32F0160 用戶手冊(英文版)
    發(fā)表于 02-22 18:52 ?0次下載
    <b class='flag-5'>MM32F0160</b> 用戶手冊(英文版)

    基于MM32F0160微控制器的機械鍵盤

    最近,為了配合新品推廣,靈動的軟件與系統(tǒng)工程SE團隊,基于帶有 USB 外設模塊的 MM32F0160 微控制器,實現(xiàn)了一套低成本帶RGB燈效的機械鍵盤。這里將設計機械鍵盤的全過程開源出來,感興趣
    的頭像 發(fā)表于 04-21 09:11 ?1176次閱讀

    CAN FD是什么意思 優(yōu)點有哪些

    日益增加的需求。 什么是CAN FD? CAN FD協(xié)議是由Bosch以及行業(yè)專家預研開發(fā)的,并于2012年發(fā)布。通過標準化對其進行了改進,現(xiàn)已納入ISO 11898-1:2015。一
    的頭像 發(fā)表于 07-18 10:40 ?2798次閱讀
    RM新时代网站-首页