本帖最后由 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]
一周热门 更多>