久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> STM32 >> 瀏覽文章

經(jīng)過(guò)can協(xié)議分析儀調(diào)試過(guò)的stm32的can模塊收發(fā)程序

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年04月15日   【字體:

不多說(shuō)了,直接上代碼

主函數(shù):main.c
#include "main.h"


int main(void)
{
 SystemInit();
 can_init();
 
 while(1)
 {

 }

}

can模塊配置的子函數(shù):can.c

#include "can.h"

void can_init(void)
{
 GPIO_InitTypeDef GPIO_InitStructure;
 NVIC_InitTypeDef NVIC_InitStructure;
 CAN_InitTypeDef CAN_InitStructure;
 CAN_FilterInitTypeDef CAN_FilterInitStructure;

 //NVIC_Configuration
 NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;     // 主優(yōu)先級(jí)為0
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;            // 次優(yōu)先級(jí)為0
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);

 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);                                  
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);
 
 //Configure CAN pin: RX
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
 GPIO_Init(GPIOA, &GPIO_InitStructure);
 
 //Configure CAN pin: TX
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_Init(GPIOA, &GPIO_InitStructure);

 
 CAN_DeInit(CAN1);
 CAN_StructInit(&CAN_InitStructure);
 
 
 CAN_InitStructure.CAN_TTCM=DISABLE;           // 時(shí)間觸發(fā)通信禁止
 CAN_InitStructure.CAN_ABOM=DISABLE;           // 離線(xiàn)退出是在中斷置位清0后退出
 CAN_InitStructure.CAN_AWUM=DISABLE;           // 自動(dòng)喚醒模式:清零sleep
 CAN_InitStructure.CAN_NART=DISABLE;           // 自動(dòng)重新傳送豹紋,知道發(fā)送成功
 CAN_InitStructure.CAN_RFLM=DISABLE;           // FIFO沒(méi)有鎖定,新報(bào)文覆蓋舊報(bào)文
 CAN_InitStructure.CAN_TXFP=DISABLE;           // 發(fā)送報(bào)文優(yōu)先級(jí)確定:標(biāo)志符
 CAN_InitStructure.CAN_Mode=CAN_Mode_Normal;   // 模式: CAN_Mode_Normal / CAN_Mode_LoopBack
 CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;        // 1tq、BS1、BS2的值跟波特率有關(guān)
 CAN_InitStructure.CAN_BS1=CAN_BS1_8tq;
 CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;
 CAN_InitStructure.CAN_Prescaler=9;       // 分頻系數(shù)為1
 CAN_Init(CAN1, &CAN_InitStructure);      // 初始化CAN1
 
 
 CAN_FilterInitStructure.CAN_FilterNumber=0;
 CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdList;
 CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;
 CAN_FilterInitStructure.CAN_FilterIdHigh=0x014 << 5;
 CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
 CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;
 CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
 CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;
 CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;
 CAN_FilterInit(&CAN_FilterInitStructure);

 CAN_ITConfig(CAN1,CAN_IT_FMP0, ENABLE); //中斷使能
 
}

 

void USB_LP_CAN1_RX0_IRQHandler(void)
{
 CanRxMsg RxMessage;
 
 RxMessage.StdId=0x00;
 RxMessage.ExtId=0x00;
 RxMessage.IDE=0;
 RxMessage.DLC=0;
 RxMessage.FMI=0;
 RxMessage.Data[0]=0x00;
 RxMessage.Data[1]=0x00;
 
 CAN_Receive(CAN1, CAN_FIFO0, &RxMessage);
 
}

 

主函數(shù)的頭文件:main.h

 


#ifndef  _MAIN_H
#define  _MAIN_H

#include "stm32f10x.h"
#include "can.h"


#endif

 

子函數(shù)的頭文件:can.h

#ifndef _CAN_H
#define _CAN_H

#include "main.h"

 

void can_init(void);

#endif
不明白的地方歡迎提問(wèn)

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 久久精品免费 | 国产综合久久久久久鬼色 | 欧美一区二区三区在线播放 | 99久9| www成人免费视频 | 日韩av最新网址 | 99国内精品久久久久久久 | 亚州春色| 99日韩 | 野狼在线社区2017入口 | 99亚洲视频 | 精品欧美色视频网站在线观看 | 在线观看日韩 | 国产一区二区精华 | 中文字幕第7页 | 最新av在线播放 | 欧美日韩免费在线 | 国产一区二区三区四区五区加勒比 | 亚洲国产欧美一区二区三区久久 | 91精品国产自产精品男人的天堂 | 欧美国产中文 | 亚洲一区 中文字幕 | 91精品欧美久久久久久久 | 久久久久久国产精品免费免费狐狸 | av手机在线免费观看 | 国产一区免费 | 亚洲精品免费视频 | 日韩欧美国产精品一区二区 | 中文字幕1区2区 | aaa大片免费观看 | 亚洲视频在线一区 | 亚洲成人中文字幕 | 午夜私人影院在线观看 | 国产精品久久一区二区三区 | 日韩精品一| 国产不卡在线观看 | 日韩国产一区二区三区 | 先锋av资源网 | 狠狠色综合网站久久久久久久 | 久久精品97| 久久久久国产一区二区三区 |