欢迎来到天天文库
浏览记录
ID:39547494
大小:51.50 KB
页数:10页
时间:2019-07-06
《can双节点通信说明》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、stm32can双节点通信发布:2009-4-1911:52
2、作者:lovour
3、来源:STM32技术社区近期发现很多网友和客户用到了stm32的can通信功能而大家对于stm32的can似乎有点陌生,固再次我花了一段时间整理了以前调通过的stm32can双节点通信程序代码和大家分享 希望大家一起讨论。 stm32的can内置2.0B内核,速度最高1m,有3个发送邮箱,高达14个滤波器使我们省去很多的软件报文判断。有些can的过滤器只能屏蔽某些帧或者接受某些帧,而stm32can可以为我们定义接受屏
4、蔽某一个帧报文。拥有两个接受缓存fifo。存数6个报文。 运行模式:初始化模式 正常模式CAN_Mode_Normal 休眠模式 测试模式 静默模式CAN_Mode_Silent 环回模式CAN_Mode_LoopBack 回送静默模式CAN_Mode_Silent_LoopBack我们最为关心的是正常模式 因为他是所有通讯的基础。ok下面就让我们进入can的双节点通信。lovour(2009
5、-4-1912:09:12)传输端的配置:在这里因为开发板硬件设置问题,我们使用重映射pd0和pd1,这样也为大家解除了使用重映射stm32can还能不能不能通信的疑虑 GPIO_PinRemapConfig(GPIO_Remap2_CAN,ENABLE);//remap /*ConfigurePC.06,PC.07,PC.08andPC.09asOutputpush-pull*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6
6、GPIO_Pin_7
7、GPIO_Pin
8、_8
9、GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOC,&GPIO_InitStructure);上面是我们为了看通信状态 初始化的几个led灯接口下面是gpio can端口初始化 注意gpio 模式 /*ConfigureCANpin:RX*/ GPIO_InitStructure.GPIO
10、_Pin=GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; GPIO_Init(GPIOD,&GPIO_InitStructure); /*ConfigureCANpin:TX*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_Init(GPIOD,&GPIO_InitStructure);s
11、tm32 can 发送配置TestStatusCAN_Polling(void){u8Error; CAN_InitTypeDef CAN_InitStructure; CAN_FilterInitTypeDef CAN_FilterInitStructure; CanTxMsgTxMessage; 申请报文空间 //CanRxMsgRxMessage; u32i=0; u8TransmitMailbox; /*CANregisterinit*/ CAN_DeInit(
12、); CAN_StructInit(&CAN_InitStructure); /*CANcellinit*/ CAN_InitStructure.CAN_TTCM=DISABLE; CAN_InitStructure.CAN_ABOM=DISABLE; CAN_InitStructure.CAN_AWUM=DISABLE; CAN_InitStructure.CAN_NART=DISABLE; CAN_InitStructure.CAN_RFLM=DISABLE; CAN_InitStr
13、ucture.CAN_TXFP=DISABLE; CAN_InitStructure.CAN_Mode=CAN_Mode_Normal;正常模式 CAN_InitStructure.CAN_SJW=CAN_SJW_1tq; CAN_InitStructure.CAN_BS1=CAN_BS1_8tq; CAN_InitStructure.CAN_BS2=CAN_BS2_7tq; CAN_InitStructure.CAN_Presc
此文档下载收益归作者所有