娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年09月30日(星期一)

正在發生

2019年09月30日 | stm32 can中斷通信

發布者:annye_cheng 來源: eefocus關鍵字:stm32  can  中斷通信 手機看文章 掃描二維碼
隨時隨地手機看文章

1、初始化can時鐘


void canRCCInit()

{

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);


2、配置can的GPIO引腳


void canGPIOConfigure()

{

    GPIO_PinRemapConfig(GPIO_Remap1_CAN1, ENABLE);


    GPIO_InitTypeDef gpioInit;

    gpioInit.GPIO_Pin = GPIO_Pin_8;

    gpioInit.GPIO_Mode = GPIO_Mode_IPU;

    gpioInit.GPIO_Speed = GPIO_Speed_50MHz;


    GPIO_Init(GPIOB, &gpioInit);


    gpioInit.GPIO_Pin = GPIO_Pin_9;

    gpioInit.GPIO_Mode = GPIO_Mode_AF_PP;

    GPIO_Init(GPIOB, &gpioInit);


3、配置并使能can


void canConfigure()

{

    CAN_InitTypeDef can_init;

    CAN_DeInit(CAN1);

    CAN_StructInit(&can_init);


    //關閉時間觸發模式

    can_init.CAN_TTCM = DISABLE;    

    //關閉自動離線管理

    can_init.CAN_ABOM = DISABLE;

    //關閉自動喚醒模式

    can_init.CAN_AWUM = DISABLE;

    //禁止報文自動重發

    can_init.CAN_NART = DISABLE;

    //FIFO 溢出時報文覆蓋原文件

    can_init.CAN_RFLM = DISABLE;

    //報文發送優先級取決于ID號

    can_init.CAN_TXFP = DISABLE;

    //回環模式

    can_init.CAN_Mode = CAN_Mode_LoopBack;


    //配置時鐘頻率

    can_init.CAN_SJW = CAN_SJW_1tq;

    can_init.CAN_BS1 = CAN_BS1_3tq;

    can_init.CAN_BS2 = CAN_BS2_2tq;

    can_init.CAN_Prescaler = 48;


    CAN_Init(CAN1, &can_init);


    CAN_FilterInitTypeDef can_filter;


    //屏蔽濾波

    can_filter.CAN_FilterNumber = 0;

    //屏蔽模式

    can_filter.CAN_FilterMode = CAN_FilterMode_IdMask;

    //32位寄存器

    can_filter.CAN_FilterScale = CAN_FilterScale_32bit;

    //高16位

    can_filter.CAN_FilterIdHigh = 0x0000;

    //低16位

    can_filter.CAN_FilterIdLow = 0;

    //屏蔽位高16位

    can_filter.CAN_FilterMaskIdHigh = 0;

    //屏蔽位低16位

    can_filter.CAN_FilterMaskIdLow = 0;

    //過濾器0關聯到FIFO0

    can_filter.CAN_FilterFIFOAssignment = CAN_FilterFIFO0;

    //使能過濾器

    can_filter.CAN_FilterActivation = ENABLE;

    //初始化過濾器

    CAN_FilterInit(&can_filter);


    //使能接收中斷

    CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);

}

4、配置中斷源


void canNvicConfigure()

{

    NVIC_InitTypeDef nvic_init;

    nvic_init.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;

    nvic_init.NVIC_IRQChannelPreemptionPriority = 0;

    nvic_init.NVIC_IRQChannelSubPriority = 0;

    nvic_init.NVIC_IRQChannelCmd = ENABLE;

    NVIC_Init(&nvic_init);


    nvic_init.NVIC_IRQChannel = USB_HP_CAN1_TX_IRQn;

    nvic_init.NVIC_IRQChannelPreemptionPriority = 0;

    nvic_init.NVIC_IRQChannelSubPriority = 1;

    nvic_init.NVIC_IRQChannelCmd = ENABLE;

    NVIC_Init(&nvic_init);

}


5、實現中斷處理函數


void USB_LP_CAN1_RX0_IRQHandler(void)

{

    CanRxMsg rx;

    CAN_Receive(CAN1, CAN_FIFO0, &rx);

    for(int i = 0; i < rx.DLC; i++){

        printf("recv data: %crn",rx.Data[i]);

    }

}


void USB_HP_CAN1_TX_IRQHandler(void)

{

    if(count < len){

        txMessage.Data[0] = txBuf[count++];

        CAN_Transmit(CAN1, &txMessage);

    }

    else {

        CAN_ITConfig(CAN1, CAN_IT_TME, DISABLE);

    }

}


6、實現發送函數


void canWrite(const char *p)

{

    strcpy(txBuf, p);

    len = strlen(p);

    count = 0;

    txMessage.StdId = 0xFE00 >> 5;

    txMessage.ExtId = 0;

    txMessage.IDE = CAN_ID_STD;

    txMessage.RTR = CAN_RTR_DATA;

    txMessage.DLC = 1;  //此處最多可傳輸8個字節

    txMessage.Data[0] = txBuf[count++];

    CAN_Transmit(CAN1, &txMessage);


    CAN_ITConfig(CAN1, CAN_IT_TME, ENABLE);

}


7、總結:在寫can總線協議時,需要自己仔細閱讀stm32的官方手冊,can總線有多種模式及標識符列表模式、標識符屏蔽模式等,需要自己仔細琢磨。

關鍵字:stm32  can  中斷通信 引用地址:stm32 can中斷通信

上一篇: stm32內部的CAN總線
下一篇:STM32f103 can的兩個接收fifo使用方法

推薦閱讀

智能手機增勢趨緩已是不爭事實,離開了這一動力,下一步的經濟增長動力將來自哪里?諸如5G、新能源汽車、自動駕駛、物聯網等潛力行業均在翹首接盤,但問題是,智能手機從出現到飽和用了十年時間,下滑亦是從頂峰開始,而這些市場的向上攀爬還在初始階段,最終誰將能問鼎?可能第一步就要看哪一產業能像手機一樣締造上萬億元的市場了。 何時規模達千億元?...
對于美國的大部分地區來說2019年的冬天是一個非常難熬的冬天。北極寒流極地渦旋夾帶著驟強暴風雪橫掃了美國中西部地區,甚至在通常氣候溫和的圣迭戈、洛杉磯以及拉斯維加斯氣溫也創下了歷史新低。這對于越來越多的電動汽車擁有者來說絕對是一個壞消息,因為他們已經發現在極端溫度下電動汽車的續航里程及充電時長都會受到不同程度的影響。Henry Payne是一...
本月早些時候,摩托羅拉發布了第二代Razr,修正或改進了第一代機型的一切。這是一款翻蓋手機風格的設備,以2000年初的標志性設備為藍本,但現在它運行的是安卓系統,并且有一個可折疊的顯示屏。這款新機擁有精致的設計、更好的芯片組和5G支持,但最重要的是,它擁有更好的價格。新款razr的起價為1399美元,而不是1499美元。  近日,摩托羅拉公...
這可能是中國進展最迅猛的自動駕駛公司。 剛剛結束的毫末智行Q3品牌日,這家被業內人視作“中國最懂量產自動駕駛”的公司曬出最新成績單: 增收快,成立不到2年的毫末智行,今年已經實現億級別營收。 這本身已不可思議。 產品落地方面,今年2季度一口氣亮出10款量產產品,硬件軟件都有落地,最新產品是和阿里達摩院合作的無人末端配送車“小蠻驢”。 更超...

史海拾趣

問答坊 | AI 解惑

你所學的專業和現在的工作一致性高嗎

還是延續我之前的帖子,那個學EE的朋友最終做了完全不沾邊的工作。而我當年的專業是古典文獻,說通俗些,就是標點、注釋古書的,還是那種豎版的從沒有標點過的。現在做的工作卻是電子類網站,實在是相差太遠,以致于同門聚會時,大家對我的工作總是 ...…

查看全部問答∨

收到論壇發來的禮物了啊!!!!!!哇哈哈哈

周三接到了論壇美女打來的電話。。。嘿嘿。。。說有禮物送出,周五就拿到了,非常可愛的東東啊,趕緊給大家看下,分享下哈哈!   包裝盒:     哈哈,可愛的小音響:而且還具有時間顯示鬧鐘功能的,贊!!   &nbs ...…

查看全部問答∨

multisim里有沒有可變直流信號源啊?從哪找啊?

multisim里有沒有可變直流信號源啊?從哪找啊?…

查看全部問答∨

[急!!!]關于程序從PC到WINCE的移植

在模擬器上通過的程序,怎樣將它移植到實體機上去運行?我將它生成的exe以及它的obj文件全部拷過去了,在實體機運行下提示的錯誤"是找不到該程序某一個組件,請確認路徑和文件名正確和所需要的庫全部可用".應該要怎樣移植才行?????…

查看全部問答∨

大家幫忙看看這道題怎么做?

四位運算器框圖如圖A1.1所示,ALU為算術邏輯單元,A和B為三選一多路開關,預先已通過多路開關A的SW門向寄存器R1,R2送入數據如下: R1=0101, R2=1010.寄存器BR輸出端接四個發光二極管進行顯示。其運算過程依次如下: ⑴ R1(A)+R2(B)→BR(1010); ⑵ ...…

查看全部問答∨

關于藍牙模塊

想做藍牙開發,不知道一般都是用的什么藍牙模塊,價格多少?…

查看全部問答∨

請求一個視頻疊加電路

目前我只知道M6237,可以進行字符與視頻疊加,可找不到比較完整的M6237電路原理圖,請行業工程師幫忙提供一下,謝謝啦! 郵件:hanbing086@163.com…

查看全部問答∨

sys文件可以看作dll么?

windows下的.sys驅動程序可以看成是dll么?tks…

查看全部問答∨

LED球泡燈調光問題

繼續深入探討LED球泡燈調光問題,普通LED球泡燈很簡單,每個LED公司都能做。目前,很多客戶要求LED球泡燈必須帶調光功能。這個還真是一個問題,很多公司都做不了,或者,達不到客戶的要求。 我們做過PI.ST.ON,NXP等案子,但效果很差,特別是現在流 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 枣庄市| 溆浦县| 格尔木市| 奉节县| 广西| 酉阳| 三门县| 抚松县| 开鲁县| 赣州市| 女性| 巨野县| 会昌县| 华坪县| 农安县| 威远县| 灯塔市| 神农架林区| 磐石市| 咸丰县| 柳州市| 原阳县| 汝阳县| 南岸区| 临高县| 金平| 西乌珠穆沁旗| 榕江县| 洛浦县| 三亚市| 白水县| 内江市| 绥阳县| 长岛县| 萝北县| 灵丘县| 双江| 道真| 登封市| 海林市| 青海省|