关于CAN转USB的收发问题

2019-07-20 06:39发布

本帖最后由 goojia 于 2018-8-13 09:55 编辑

我用的是探索版,要学习CAN通信。因为没有买显示屏,所以想用串口来测试和学习STM32F4的CAN模块。我的CAN转USB工具的波特率是51.2K,设置为任何帧都能传递,可是当CAN工作在正常模式的时候,无论如何都不能接受到或者发送数据,想请问为什么?
烦请各位帮忙解答一下,刚刚入门有点糊涂
ps:(1)跳线帽已经连接正确;
      (2)tbs2=3,tbs1=4,brp=82,原子哥的代码注释里说时钟初始化时Fpclk1=42M,那么波特率这样算出来应该为51.2195122K.
具体main()代码如下:
[mw_shl_code=c,true]#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
#include "can.h"

int main(void)
{
        u8 i=0,j=0;
        u8 canbuf[8];
        u8 key;
        u8 q;
        delay_init(168);    //3õê¼»ˉÑóê±oˉêy
        uart_init(115200);        //3õê¼»ˉ′®¿ú2¨ìØÂêÎa115200
        LED_Init();                                        //3õê¼»ˉLED
        KEY_Init();                                 //°′¼ü3õê¼»ˉ
//        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        CAN1_Mode_Init(CAN_SJW_1tq,CAN_BS2_4tq,CAN_BS1_5tq,52,CAN_Mode_Normal);
        
        while(1)
        {
                i++;
                for(j=0;j<8;j++)
                {
                        canbuf[j]=i+j;
                }
                key=KEY_Scan(0);
                if(key==KEY0_PRES)
                {
                        CAN1_Send_Msg(canbuf,8);
                        delay_ms(500);
                        LED0=0;
                }
               
        }

}[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。