OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4269|回复: 0

请问各位大神,我这can的配置有没有什么问题,为什么发不出数据?

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2017-6-1
在线时间
3 小时
发表于 2017-6-1 10:27:06 | 显示全部楼层 |阅读模式
1金钱
请问各位大神,我这can的配置有没有什么问题,为什么发不出数据?

#include "can.h"

/*完整配置can的功能*/
       
void CAN_Config(void)
{
        CAN_GPIO_Config();
        CAN_NVIC_Config();
        CAN_Mode_Config();
        CAN_Filter_Config();
}

/*CAN的GPIO配置*/
void CAN_GPIO_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
       
        /*外设时钟设置*/
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC,ENABLE);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1,ENABLE);
       
        /*拉低can的S脚*/
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOC,&GPIO_InitStructure);
        GPIO_ResetBits(GPIOC,GPIO_Pin_9);
       
        /*PA11上拉输入*/
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
       
        /*PA12复用推挽输出*/
        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的NVIC配置*/
void CAN_NVIC_Config(void)
        {
                NVIC_InitTypeDef NVIC_InitStructure;
                NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
                NVIC_InitStructure.NVIC_IRQChannel = CAN1_RX0_IRQn;
                NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
                NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
                NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
                NVIC_Init(&NVIC_InitStructure);
        }
       
       
       
       
/*CAN的模式配置*/
void CAN_Mode_Config(void)
        {
                CAN_InitTypeDef CAN_InitStructure;
                CAN_DeInit(CAN1);
                CAN_StructInit(&CAN_InitStructure);
                CAN_InitStructure.CAN_TTCM = DISABLE;
                CAN_InitStructure.CAN_ABOM = ENABLE;
                CAN_InitStructure.CAN_AWUM = ENABLE;
                CAN_InitStructure.CAN_NART = DISABLE;
                CAN_InitStructure.CAN_RFLM = DISABLE;
                CAN_InitStructure.CAN_TXFP = DISABLE;
                CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;
                CAN_InitStructure.CAN_SJW = CAN_SJW_2tq;
                CAN_InitStructure.CAN_BS1 = CAN_BS1_6tq;
                CAN_InitStructure.CAN_BS2 = CAN_BS2_3tq;
                CAN_InitStructure.CAN_Prescaler = 4;
                CAN_Init(CAN1,&CAN_InitStructure);
        }
       
       
       
       
/*CAN的过滤器配置*/
void CAN_Filter_Config(void)
        {
                CAN_FilterInitTypeDef CAN_FilterInitStructure;
                CAN_FilterInitStructure.CAN_FilterNumber = 0;
                CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;
                CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;
                CAN_FilterInitStructure.CAN_FilterIdHigh = (((u32)0x1314<<3)&0xFFFF0000)>>16;
                CAN_FilterInitStructure.CAN_FilterIdLow = (((u32)0x1314<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF;
                CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0xFFFF;
                CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0xFFFF;
                CAN_FilterInitStructure.CAN_FilterFIFOAssignment = CAN_Filter_FIFO0;
                CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;
                CAN_FilterInit(&CAN_FilterInitStructure);
                CAN_ITConfig(CAN1,CAN_IT_FMP0,ENABLE);
        }


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-20 16:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表