久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
stm32 can
[打印本頁]
作者:
lisongyuan520
時間:
2018-9-3 14:46
標題:
stm32 can
void can1_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* GPIOA */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA, ENABLE);
/* CAN1 時鐘*/
RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);
/* Configure CAN pin: RX */ // PA11
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Configure CAN pin: TX */ // PA12
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// GPIO_InitTypeDef GPIO_InitStructure;
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
// RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
//
// GPIO_PinRemapConfig(GPIO_Remap1_CAN1 , ENABLE); //端口復用為CAN1
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //PB8:CAN-RX
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //輸入上拉
// GPIO_Init(GPIOB, &GPIO_InitStructure);
//
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PB9:CAN-TX
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復用模式
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
// GPIO_Init(GPIOB, &GPIO_InitStructure);
}
/****************************************************************************
* 名 稱:TestStatus CAN_Interrupt(void)
* 功 能:中斷模式下的CAN收發
* 入口參數:無
* 出口參數:無
* 說 明:
* 調用方法:無
****************************************************************************/
void can1_Interrupt(void)
{
CAN_InitTypeDef CAN_InitStructure;
CAN_FilterInitTypeDef CAN_FilterInitStructure;
// CanTxMsg TxMessage;
/* CAN寄存器初始化 */
CAN_DeInit(CAN1);
CAN_StructInit(&CAN_InitStructure);
/* CAN單元初始化 */
CAN_InitStructure.CAN_TTCM = ENABLE; //MCR-TTCM 時間觸發通信模式使能
CAN_InitStructure.CAN_ABOM = ENABLE; //MCR-ABOM 自動離線管理
CAN_InitStructure.CAN_AWUM = ENABLE; //MCR-AWUM 自動喚醒模式
CAN_InitStructure.CAN_NART = DISABLE; //MCR-NART 禁止報文自動重傳 0-自動重傳 1-報文只傳一次
CAN_InitStructure.CAN_RFLM = ENABLE; //MCR-RFLM 接收FIFO 鎖定模式 0-溢出時新報文會覆蓋原有報文 1-溢出時,新報文丟棄
CAN_InitStructure.CAN_TXFP = ENABLE; //MCR-TXFP 發送FIFO優先級 0-優先級取決于報文標示符 1-優先級取決于發送請求的順序
CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; //CAN_Mode_LoopBack 環回模式 CAN_Mode_Normal
/*波特率*////9600
// CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; //BTR-SJW 重新同步跳躍寬度 1個時間單元
// CAN_InitStructure.CAN_BS1 = CAN_BS1_1tq; //BTR-TS1 時間段1 占用了2個時間單元
// CAN_InitStructure.CAN_BS2 = CAN_BS2_2tq; //BTR-TS1 時間段2 占用了3個時間單元
// CAN_InitStructure.CAN_Prescaler = 945;
///*波特率*/9.4 k
CAN_InitStructure.CAN_SJW = CAN_SJW_4tq; //BTR-SJW 重新同步跳躍寬度 1個時間單元
CAN_InitStructure.CAN_BS1 = CAN_BS1_6tq; //BTR-TS1 時間段1 占用了2個時間單元
CAN_InitStructure.CAN_BS2 = CAN_BS2_4tq; //BTR-TS1 時間段2 占用了3個時間單元
CAN_InitStructure.CAN_Prescaler = 358;
/////////// 350 < CAN_Prescaler < 372
// CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; //BTR-SJW 重新同步跳躍寬度 1個時間單元
// CAN_InitStructure.CAN_BS1 = CAN_BS1_5tq; //BTR-TS1 時間段1 占用了2個時間單元
// CAN_InitStructure.CAN_BS2 = CAN_BS2_2tq; //BTR-TS1 時間段2 占用了3個時間單元
// CAN_InitStructure.CAN_Prescaler = 487;
CAN_Init(CAN1, &CAN_InitStructure);
/* CAN過濾器初始化 */
CAN_FilterInitStructure.CAN_FilterNumber=13; //
CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask; //FM1R 過濾器組0的工作模式。
//0: 過濾器組x的2個32位寄存器工作在標識符屏蔽位模式;
//1: 過濾器組x的2個32位寄存器工作在標識符列表模式。
CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit; //FS1R 過濾器組0(13~0)的位寬。
//0:過濾器位寬為2個16位; 1:過濾器位寬為單個32位。
// /* 使能報文標示符過濾器按照標示符的內容進行比對過濾,擴展ID不是如下的就拋棄掉,是的話,會存入FIFO0。 */
// CAN_FilterInitStructure.CAN_FilterIdHigh=(((u32)0x1234<<3)&0xFFFF0000)>>16; //要過濾的ID高位
// CAN_FilterInitStructure.CAN_FilterIdLow=(((u32)0x1234<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF;//要過濾的ID低位
// CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xffff;
// CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xffff;
CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;
CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
/* 全為0,忽略了報文標識符判別 */
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterFIFOAssignment=0; //FFAx : 過濾器位寬設置 報文在通過了某過濾器的過濾后,
//將被存放到其關聯的FIFO中。 0:過濾器被關聯到FIFO0; 1:過濾器被關聯到FIFO1。
CAN_FilterInitStructure.CAN_FilterActivation=ENABLE; //FACTx : 過濾器激活 軟件對某位設置1來激活相應的過濾器。只有對FACTx位清0,
//或對CAN_FMR寄存器的FINIT位設置1后,才能修改相應的過濾器寄存器
//x(CAN_FxR[0:1])。 0:過濾器被禁用; 1:過濾器被激活。
CAN_FilterInit(&CAN_FilterInitStructure);
/* CAN FIFO0 接收中斷使能 */
CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);
}
作者:
admin
時間:
2018-9-3 17:26
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
激情国产在线
|
一区二区三区 在线
|
欧美激情 亚洲
|
亚洲午夜精品
|
亚洲精品一区二区三区蜜桃久
|
黄色免费网站在线看
|
欧美日韩一区在线
|
日日操夜夜干
|
免费中文字幕
|
一级黄a
|
欧美日韩国产一区二区
|
一级黄色影片在线观看
|
亚洲欧美综合网
|
国产婷婷色综合av蜜臀av
|
成人av观看
|
欧美精品一区二区三区在线
|
免费精品
|
91视频一区二区三区
|
人人爽人人草
|
特级做a爱片免费69 精品国产鲁一鲁一区二区张丽
|
久久狠狠
|
日本一区二区影视
|
精品欧美一区免费观看α√
|
一区二区精品
|
亚洲精品www
|
国产清纯白嫩初高生视频在线观看
|
亚欧性视频
|
午夜精品久久久久久久久久久久久
|
毛片免费看
|
亚洲美乳中文字幕
|
在线中文视频
|
在线免费观看日本
|
国产精品一区在线
|
视频在线一区二区
|
欧美一区二区久久
|
91精品国产综合久久久久
|
精品国产一区二区三区四区在线
|
亚洲精品成人网
|
毛片站
|
国产真实精品久久二三区
|
不卡一区二区在线观看
|