打印
[KungFu32位 MCU]

KF32A15的can fd作为普通的Can

[复制链接]
1936|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
风雪小诺|  楼主 | 2022-5-9 14:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想要用canfd_6作为普通的can收发通信。500K波特率。想问下需要什么特别的配置么 还是可以直接用官方canfd例程直接改波特率即可

使用特权

评论回复
沙发
风雪小诺|  楼主 | 2022-5-9 14:37 | 只看该作者
大搞有两个问题:用的是KF32A156_ CANFD_ TRANSMIT_POLLING
1.波特率官方没有写设置成多少分辨率:怎么配置成都是500K呀,md写的是默认波特率为仲裁段1Mbps,数据段2Mbps
Can_m_FdControllerInit(CANfd6, Canfd_Controller_AllConfig,Initindex_0);
--》        /* Set CAN Default baudrate */
        Can_m_FdBaudrateSet(Can_Controller_Index, Can_ControllerConfig,0);
-------》const Can_Controller_BDRConfigType Canfd_Controller_AllClockAndBDRConfig[1] = {
        /* Default 1M hz */
        /* Clock and bandrate config 0 : Index 0 */
        {
                5U,                                /* Prescale */
                1U,                                /* Swj */
                14U,                        /* Tseg1 */
                3U,                                /* Tseg2 */
                CAN_SAMPLE_ONCE /* Sample time */
        },
};
2.如何配置成普通can进行发送,接收?
Can_m_FdMailBox_Write(CANfd6, Mailbox_0, &Canfd_Sdu.Can_MailboxHeader[0]);
--》Canfd_Sdu_Type Canfd_Sdu =
{
        {
                {
                        {
                                {
                                 0x00,
                                 0x01,
                                 0x02,
                                 0x03,
                                 0x04,
                                 0x05,
                                 0x06,
                                 0x07,
                         },
                         Data_Length_8},//
                        0x100,
                        0x000,
                        CANFD_BRS_DISABLE,//比特率切换。决定在发送 CAN FD 帧时是否切换比特率。0 表示不切换,1 表示切换

                        CAN_FRAME_CLASSICAL,//作为can帧格式不是can fd格式
                        CAN_ID_STANDARD,//作为标准帧格式

                        MAIL_TRANSMIT,//邮件发送
                },
        },
        1,
};

使用特权

评论回复
板凳
风雪小诺|  楼主 | 2022-5-9 14:57 | 只看该作者
canfd.c
主要的应该是这两个配置么?  但是并没有0.
Can_ControllerConfigType Canfd_Controller_AllConfig[1] = {               
&Canfd_Controller_AllClockAndBDRConfig[0],
                &Canfd_Controller_ALLFdBDRConfig[0],
}

const Can_Controller_BDRConfigType Canfd_Controller_AllClockAndBDRConfig[1] = {
        /* Default 1M hz */
        /* Clock and bandrate config 0 : Index 0 */
        {
                5U,                                /* Prescale */
                1U,                                /* Swj */
                14U,                        /* Tseg1 */
                3U,                                /* Tseg2 */
                CAN_SAMPLE_ONCE /* Sample time */
        },
};


const Can_FdBDRConfigType Canfd_Controller_ALLFdBDRConfig[1] = {
        /* config 0 */
        {
                2U,         /* Prescale */
                14U, /* Tseg1 */
                3U,         /* Tseg2 */
        },
};

使用特权

评论回复
地板
andygirl| | 2022-5-11 21:06 | 只看该作者
can的休眠与唤醒有几种形式?

使用特权

评论回复
5
littlelida| | 2022-5-12 21:09 | 只看该作者
can的应用一直以为只是通信,现在发现还有很多其他的

使用特权

评论回复
6
yangxiaor520| | 2022-5-13 08:58 | 只看该作者
可以工作在CAN模式的,至于通信速率和通信距离有关系。

使用特权

评论回复
7
MllM| | 2022-5-13 14:48 | 只看该作者
神啊,KF32A141的CAN有用过吗?怎么都调不通啊

使用特权

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

本版积分规则

3

主题

6

帖子

0

粉丝