STM32的CAN现场总线应用经验总结

STM32的CAN现场总线应用经验总结

ID:42465633

大小:98.32 KB

页数:5页

时间:2019-09-15

STM32的CAN现场总线应用经验总结_第1页
STM32的CAN现场总线应用经验总结_第2页
STM32的CAN现场总线应用经验总结_第3页
STM32的CAN现场总线应用经验总结_第4页
STM32的CAN现场总线应用经验总结_第5页
资源描述:

《STM32的CAN现场总线应用经验总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、STM32的CAN现场总线应用经验总结CAN现场总线的应用最重要的就是其接口端口映射、初始化及数据的发送、接收。1•接口映射STM32中的CAN物理引脚可以设置成三种:默认模式、重定义地址1模式、重定义地址2模式。CAN信号可以彼映射到端口A、端口B或端口D上,如下表所示,对于端口D,在36、48和64脚的封装上没有重映射功能。表1:CAN复用功能重映射复用功能CANREMAPLl:0J=M00uCANREMAP[l:0J=H10MCANREMAP[l:0]=Hir,CANRXPA11PB8PDOCANTX

2、PA12PB9PD1重映射不适用于36脚的封装当PDO和PD1没有被重映射到OSCJN和OSC_OUT时,重映射功能只适用于100脚和144脚的封装上默认模式/*ConfigureCANpin:RX*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_ll;GPIOInitStructure.GPIOMode=GPIOMode1PU;GPIO_Init(GPIO_CAN_Key,&GPlO.InitStructure);/*ConfigureCANpin:TX*/GPI0_InitS

3、tructure.GP10_Pin=GP10_Pin_12;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIOJnit(GPIOA,&GPIOJnitStructure);重定义地址1模式/*ConfigureCANpin:RX*/GPIO_InitStructure.GPlO_Pin=GPIO_Pin_8;GPIOInitStructure.GPIOMode=GPIOMode1PU;GPIOJnit(GPIO_CAN_Key,&GPIO.InitStruct

4、ure);/*ConfigureCANpin:TX*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPlO_Mode=GPlO_Mode_AF_PP;GPIOJnit(GPIO_CAN_Key,&GPIO.InitStructure);/^ConfigureCANRemap重映射*/GPIO_PinRemapConfig(GPIO_Remap1_CAN,ENABLE);/*ConfigureCANpin:RX*/GPIO_InitStr

5、ucture.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;GPIO_Init(GPIO_CAN_Key,&GPIO_InitStructure);/*ConfigureCANpin:TX*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_l;GPIO」nitStirictui*e.GPIO_M(xle=GPIO_Mode_AF_PP;GPIO_Init(GPIO_CAN_Key,&GPIO_InitS

6、tructure);/^ConfigureCANRemap重映射*/GPIO_PinRemapConfig(GPIO_Remap2_CAN,ENABLE);设置完CAN的引脚之后还需要打开CAN的时钟:/*CANPeriphclockenable*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN,ENABLE);2.初始化2.1.1CAN单元初始化tBS2=lTS2I2i01±ljXtqCAN单元初始化最重要的就是波特率的设置,原理如下:V位时间>同步段时间段1(BSD

7、时间段2(BS2)lXtq—*(TS1[3:O1+1)Xtq即:CANInitStructure.CANBS1即:CANInitStructure.CANBS波特率二1/位时间位时间=(1+(BS1+(BS2)Xtqq二(BRPf9:01+l)X丫阳水”B

8、J:CAN」nitStnjcture.CAN_PrescalertpCLK=APB1例如现有一STM32系统时蚀为72MHz,关于CAN波特率有以下设置:CAN」nitStnicture.CAN_SJW二CAN_SJW_ltq;〃重新同步跳跃宽度1个时间

9、单位CAN」nitStnicture.CAN_BS1=CAN_BS1_8tq;//时间段1为8个时间单位CAN」nitStnicture.CAN_BS2=CAN_BS2_7tq;〃时间段2为7个时间单位CAN_InitStructure.CAN_Prescaler=45;〃设左了一个时间单位的长度为45系统时钟为72MHz,则APB1的频率为36MHz则其CAN的波特率为1一K1+8+7)X45一(36X10&)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。