打印
[其他ST产品]

谁调试通过了710的can啊,帮我看看下面的程序好吗?

[复制链接]
3059|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zjf0000|  楼主 | 2008-7-12 09:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void main(void)
{
#ifdef DEBUG
    debug();
#endif

       RCCU_Div2Config ( ENABLE);
       RCCU_FCLKConfig ( RCCU_RCLK_2 );
       RCCU_PCLKConfig (RCCU_RCLK_2);
       RCCU_MCLKConfig (RCCU_DEFAULT);
       RCCU_PLL1Config (RCCU_PLL1_Mul_24, RCCU_Div_2);
       while(RCCU_FlagStatus(RCCU_PLL1_LOCK)==RESET);
       RCCU_RCLKSourceConfig (RCCU_PLL1_Output) ;


       APB_ClockConfig(APB1,ENABLE,CAN_Periph);
       
    // initialize the I/O ports for the CAN pins
    // setup GPIO 1.11 (CAN RX pin) as input Tristate CMOS
    GPIO_Config(GPIO1, 0x0800, GPIO_IN_TRI_CMOS);

    // setup GPIO 1.12 (CAN TX pin) as output alternate Push-pull
    GPIO_Config(GPIO1, 0x1000, GPIO_AF_PP);

    // initialize the CAN at a standard bitrate
    CAN_Init(CAN_CR_INIT, CAN_BITRATE_100K);

    // configure the message objects
    CAN_InvalidateAllMsgObj();
    CAN_SetUnusedMsgObj(CAN_TX_MSGOBJ);
    CAN_SetUnusedMsgObj(CAN_RX_MSGOBJ);
    CAN_SetTxMsgObj(CAN_TX_MSGOBJ, CAN_STD_ID);
    CAN_SetRxMsgObj(CAN_RX_MSGOBJ, CAN_STD_ID, 0, CAN_LAST_STD_ID, TRUE);
        

    while(1)
    {

        // transmit
        CAN_SendMessage(CAN_TX_MSGOBJ, &TxCanMsg);
        // wait until end of transmission
        CAN_WaitEndOfTx();
        // transmission succeeded
        // release the message objects
        CAN_ReleaseTxMessage(CAN_TX_MSGOBJ);
        // wait
        wait();
    }
}

这是一个can的发送程序,晶振采用的是8M的,请高手帮忙看看,谢谢了。
沙发
zjf0000|  楼主 | 2008-7-14 11:42 | 只看该作者

没有人搞过can吗?郁闷

使用特权

评论回复
板凳
ST_ARM| | 2008-7-14 13:36 | 只看该作者

代码看了又怎么样?

你的问题是什么?

使用特权

评论回复
地板
zjf0000|  楼主 | 2008-7-14 13:38 | 只看该作者

发不出去,710的tx引脚没任何变化

使用特权

评论回复
5
zjf0000|  楼主 | 2008-7-31 13:08 | 只看该作者

通过了,下面是初始化的代码

void CanNet_Init(void)
{
    // initialize the I/O ports for the CAN pins
    // setup GPIO 1.11 (CAN RX pin) as input Tristate CMOS
    GPIO_Config(GPIO1, 0x0800, GPIO_IN_TRI_CMOS);
    
    // setup GPIO 1.12 (CAN TX pin) as output alternate Push-pull
    GPIO_Config(GPIO1, 0x1000, GPIO_AF_PP);
    
    CAN_Init(CAN_CR_IE | CAN_CR_CCE | CAN_CR_DAR, CAN_BITRATE_100K);
    
    // configure the message objects
    CAN_InvalidateAllMsgObj();
    CAN_SetUnusedMsgObj(CAN_TX_MSGOBJ);
    CAN_SetUnusedMsgObj(CAN_RX_MSGOBJ);
    CAN_SetTxMsgObj(CAN_TX_MSGOBJ, CAN_STD_ID);
    CAN_SetRxMsgObj(CAN_RX_MSGOBJ, CAN_STD_ID, 0, CAN_LAST_STD_ID, TRUE);
    
    //configure the intrupt
    EIC_IRQChannelConfig(CAN_IRQChannel,ENABLE);
    EIC_IRQChannelPriorityConfig(CAN_IRQChannel, 10);
}

使用特权

评论回复
6
xuexuejudy| | 2008-8-1 11:42 | 只看该作者

请教zjf1000 你有没有QQ 或是邮箱什么的啊

请问一下你调试用的IAR EWARM软件的一些驱动程序什么的也是经过自己改编的吗 

使用特权

评论回复
7
dkill| | 2008-8-6 13:11 | 只看该作者

楼主可在 我有一事相求

使用特权

评论回复
8
zjf0000|  楼主 | 2008-8-7 11:51 | 只看该作者

没有啊,上面的程序初始化程序就可以了啊

不过apb1得设置成8m才可以。

使用特权

评论回复
9
dkill| | 2008-8-7 14:43 | 只看该作者

我发现他的滤波器只有一个呀 是吗

也就是只能滤波一个 或一组 id  而不能滤除某两个

使用特权

评论回复
10
dkill| | 2008-8-20 10:03 | 只看该作者

楼主 您的中断可以进去吗 发送和接受中断

使用特权

评论回复
11
zjf0000|  楼主 | 2008-8-20 11:40 | 只看该作者

能啊

使用特权

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

本版积分规则

67

主题

421

帖子

1

粉丝