收藏 分享(赏)

STM32的can总线实验心得.doc

上传人:精品资料 文档编号:10810493 上传时间:2020-01-10 格式:DOC 页数:35 大小:33.88KB
下载 相关 举报
STM32的can总线实验心得.doc_第1页
第1页 / 共35页
STM32的can总线实验心得.doc_第2页
第2页 / 共35页
STM32的can总线实验心得.doc_第3页
第3页 / 共35页
STM32的can总线实验心得.doc_第4页
第4页 / 共35页
STM32的can总线实验心得.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、STM32的 can总线实验心得标签: 总线 心得 实验 2010-09-01 21:08 http:/ data = 0;int sent = FALSE;#ifdef DEBUGdebug();#endif RCC_Configuration(); NVIC_Configuration();GPIO_Configuration();USART_Configuration();CAN_Configuration();Serial_PutString(“rn伟研科技 http:/rn“);Serial_PutString(“CAN testrn“); while(1)if(GPIO_Keypr

2、ess(GPIO_KEY, BUT_RIGHT)GPIO_SetBits(GPIO_LED, GPIO_LD1); /检测到按键按下if(sent = TRUE)continue; sent = TRUE;data +;if(data z)data = 0;CAN_TxData(data);else /按键放开GPIO_ResetBits(GPIO_LED, GPIO_LD1); sent = FALSE;前面的 RCC、NVIC、GPIO、USART 配置和之前的实验大同小异,关键是分析 CAN_Configuration()函数如下:void CAN_Configuration(void)

3、 /CAN配置函数CAN_InitTypeDef CAN_InitStructure;CAN_FilterInitTypeDef CAN_FilterInitStructure;/* CAN register init */CAN_DeInit();/ CAN_StructInit(/* CAN cell init */CAN_InitStructure.CAN_TTCM=DISABLE;/禁止时间触发通信模式CAN_InitStructure.CAN_ABOM=DISABLE;/软件对CAN_MCR寄存器的INRQ位进行置1随后清0后,一旦硬件检测/到 128次 11位连续的隐性位,就退出离

4、线状态。CAN_InitStructure.CAN_AWUM=DISABLE;/睡眠模式通过清除CAN_MCR寄存器的SLEEP位,由软件唤醒CAN_InitStructure.CAN_NART=ENABLE;/DISABLE; CAN报文只被发送 1次,不管发送的结果如何(成功、出错或仲裁丢失)CAN_InitStructure.CAN_RFLM=DISABLE;/在接收溢出时FIFO未被锁定,当接收FIFO的报文未被读出,下一个收到的报文会覆盖原有的报文CAN_InitStructure.CAN_TXFP=DISABLE;/发送FIFO优先级由报文的标识符来决定/ CAN_InitStru

5、cture.CAN_Mode=CAN_Mode_LoopBack;CAN_InitStructure.CAN_Mode=CAN_Mode_Normal; /CAN硬件工作在正常模式 CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;/重新同步跳跃宽度 1个时间单位CAN_InitStructure.CAN_BS1=CAN_BS1_8tq;/时间段 1为 8个时间单位CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;/时间段 2为 7个时间单位CAN_InitStructure.CAN_Prescaler = 9; /(pclk1/(1+8+7

6、)*9) = 36Mhz/16/9 = 250Kbits设定了一个时间单位的长度9CAN_Init(/* CAN filter init 过滤器初始化*/CAN_FilterInitStructure.CAN_FilterNumber=0;/指定了待初始化的过滤器 0CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;/指定了过滤器将被初始化到的模式标识符屏蔽位模式CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;/给出了过滤器位宽1个32位过滤器CA

7、N_FilterInitStructure.CAN_FilterIdHigh=0x0000;/用来设定过滤器标识符(32位位宽时为其高段位,16位位宽时为第一个)CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;/用来设定过滤器标识符(32位位宽时为其低段位,16位位宽时为第二个CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;/用来设定过滤器屏蔽标识符或者过滤器标识符(32 位位宽时为其高段位,16 位位宽时为第一个)CAN_FilterInitStructure.CAN_FilterMaskI

8、dLow=0x0000;/用来设定过滤器屏蔽标识符或者过滤器标识符(32 位位宽时为其低段位,16 位位宽时为第二个CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;/设定了指向过滤器的FIFO0CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;/使能过滤器CAN_FilterInit(/* CAN FIFO0 message pending interrupt enable */ CAN_ITConfig(CAN_IT_FMP0, ENABLE);/使能指定的 CAN中断再看看发送程序:TestStatus CAN_TxData(char data)CanTxMsg TxMessage;u32 i = 0;u8 TransmitMailbox = 0;/*u32 dataLen;dataLen = strlen(data);if(dataLen 8)dataLen = 8;*/* transmit 1 message生成一个信息 */TxMessage.StdId=0x00;/ 设定标准标识符TxMessage.ExtId=0x1234;/ 设定扩展标识符

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报