打印
[STM32F1]

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

[复制链接]
475|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
we167527|  楼主 | 2015-11-9 22:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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;

   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);
}
沙发
amanda_s| | 2015-11-10 14:27 | 只看该作者
例程能跑吗?

使用特权

评论回复
板凳
we167527|  楼主 | 2015-11-10 18:21 | 只看该作者

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

使用特权

评论回复
地板
643757107| | 2015-11-10 20:11 | 只看该作者
先凑合能用就行,项目先粗略的搞定。

使用特权

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

本版积分规则

54

主题

294

帖子

6

粉丝