KF32A15的can fd作为普通的Can
想要用canfd_6作为普通的can收发通信。500K波特率。想问下需要什么特别的配置么 还是可以直接用官方canfd例程直接改波特率即可大搞有两个问题:用的是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 = {
/* 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);
--》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,
};
canfd.c
主要的应该是这两个配置么?但是并没有0.
Can_ControllerConfigType Canfd_Controller_AllConfig = {
&Canfd_Controller_AllClockAndBDRConfig,
&Canfd_Controller_ALLFdBDRConfig,
}
const Can_Controller_BDRConfigType Canfd_Controller_AllClockAndBDRConfig = {
/* 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 = {
/* config 0 */
{
2U, /* Prescale */
14U, /* Tseg1 */
3U, /* Tseg2 */
},
}; can的休眠与唤醒有几种形式? can的应用一直以为只是通信,现在发现还有很多其他的 可以工作在CAN模式的,至于通信速率和通信距离有关系。 神啊,KF32A141的CAN有用过吗?怎么都调不通啊
页:
[1]