初级会员

- 积分
- 66
- 金钱
- 66
- 注册时间
- 2016-3-13
- 在线时间
- 12 小时
|
1金钱
本帖最后由 gogoedv 于 2016-4-1 20:23 编辑
F103精英版与F407探索者组网CAN通讯,各自的回环模式都正常,采用普通模式组网无法通讯。
以下是F103在原提供例子上改的代码,F407直接采用CAN例子。
[mw_shl_code=c,true]#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "can.h"
#include "rtc.h"
int main(void)
{
u8 t=0;
u8 canbuf[8];
u16 count=0;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
LED_Init(); //初始化与LED连接的硬件接口
KEY_Init(); //按键初始化
RTC_Init(); //RTC初始化
//CAN初始化,波特率500Kbps
while(CAN_Mode_Init(CAN_SJW_1tq, CAN_BS2_8tq, CAN_BS1_9tq, 4, 0) != 0)
delay_ms(10);
printf("CAN Init OK.\n");
while(1)
{
count++;
if(count >= 500)
{
canbuf[0] = calendar.w_year - 2000;
canbuf[1] = calendar.w_month;
canbuf[2] = calendar.w_date;
canbuf[3] = 0;
canbuf[4] = calendar.hour;
canbuf[5] = calendar.min;
canbuf[6] = calendar.sec;
canbuf[7] = 0;
if(Can_Send_Msg(canbuf,8)==0)//发送8个字节
{
printf("%d-%d-%d %d:%d:%d \n",canbuf[0],canbuf[1],canbuf[2],canbuf[4],canbuf[5],canbuf[6]);
printf("Send OK.\n");
}
count=0;
}
t++;
delay_ms(10);
if(t==50)
{
LED0=!LED0;//提示系统正在运行
t=0;
}
}
}
[/mw_shl_code]
|
|