打印
[STM32]

CAN发送不知道哪里有错误。一直是2.5V未该改变

[复制链接]
642|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
we167527|  楼主 | 2015-11-9 18:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "pbdata.h"
void RCC_Configuration(void);
void GPIO_Configuration(void);
void NVIC_Configuration(void);
void CAN_Configuration(void);

int main(void)
{
        CanTxMsg TxMessage;
       
        RCC_Configuration();        //ϵͳʱÖÓ³õʼ»¯
        GPIO_Configuration();//¶Ë¿Ú³õʼ»¯
        NVIC_Configuration();
        CAN_Configuration();
       
        while(1)
        {
                TxMessage.StdId=0x02>>5;
                TxMessage.ExtId=0;

                TxMessage.IDE=CAN_ID_STD;
                //Êý¾ÝÖ¡
                TxMessage.RTR=CAN_RTR_DATA;
                TxMessage.DLC=8;
               
                for(b=0;b<8;b++)
                {
                        TxMessage.Data[b]=rx[b];
                }       
                CAN_Transmit(CAN1,&TxMessage);       
                delay_ms(10);
        }       
}

void RCC_Configuration(void)
{
    SystemInit();//72m
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1,ENABLE);
}

void GPIO_Configuration(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;       
        //LED

        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;//RX
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
        GPIO_Init(GPIOA,&GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;//TX
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
       
}

void NVIC_Configuration(void)
{
           NVIC_InitTypeDef NVIC_InitStructure;

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

        NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
}

void CAN_Configuration(void)
{
   CAN_InitTypeDef CAN_InitStructure;
   CAN_FilterInitTypeDef CAN_FilterInitStructure;

   CAN_DeInit(CAN1);
   CAN_StructInit(&CAN_InitStructure);

   CAN_InitStructure.CAN_TTCM=DISABLE;
   CAN_InitStructure.CAN_ABOM=DISABLE;
   CAN_InitStructure.CAN_AWUM=DISABLE;
   CAN_InitStructure.CAN_NART=DISABLE;
   //FIFO Òç³öʱ±¨Îĸ²¸ÇÔ´Îļþ
   CAN_InitStructure.CAN_RFLM=DISABLE;
   CAN_InitStructure.CAN_TXFP=DISABLE;
   CAN_InitStructure.CAN_Mode=CAN_Mode_Normal;

   CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
   CAN_InitStructure.CAN_BS1=CAN_BS1_3tq;
   CAN_InitStructure.CAN_BS2=CAN_BS2_2tq;
   CAN_InitStructure.CAN_Prescaler = 48;

   CAN_Init(CAN1,&CAN_InitStructure);

   CAN_FilterInitStructure.CAN_FilterNumber=0;
   CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;
   CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;
   CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;
   CAN_FilterInitStructure.CAN_FilterIdLow=0;
   CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;
   CAN_FilterInitStructure.CAN_FilterMaskIdLow=0;
   CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO0;
   CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;
   CAN_FilterInit(&CAN_FilterInitStructure);
   CAN_ITConfig(CAN1,CAN_IT_FMP0,ENABLE);
}


相关帖子

沙发
457344370| | 2015-11-10 08:25 | 只看该作者
用示波器测量下PA12是不是有输出,还有把你的原理图发上来看看是不是原理图有问题

使用特权

评论回复
板凳
we167527|  楼主 | 2015-11-10 19:03 | 只看该作者
457344370 发表于 2015-11-10 08:25
用示波器测量下PA12是不是有输出,还有把你的原理图发上来看看是不是原理图有问题 ...

好像能跑了。不过遇到新的问题了
我想要细谈。就是CAN发送延时不管用。
QQ:864095840
邮箱:864095840@qq.com

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:联系方式: QQ:864095840 邮箱:86095840@qq.com

54

主题

294

帖子

6

粉丝