ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

STM32F429 rtthread CAN总线

2021-07-08 10:29:30  阅读:215  来源: 互联网

标签:通讯 thread 1TQ 总线 tbs2 rtthread 波特率 STM32F429


1.简介

CAN(Controller Area Network) 总线
CAN通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有CAN_High和CAN_Low两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯。
CAN物理层的形式主要分为闭环总线及开环总线网络两种,一个适合于高速通讯,一个适合于远距离通讯。CAN闭环通讯网络是一种遵循ISO11898标准的高速、短距离网络,它的总线最大长度为40m,通信速度最高为1Mbps,总线的两端各要求有一个“120欧”的电阻。来做阻抗匹配,以减少回波反射。
在这里插入图片描述
CAN开环总线网络是遵循ISO11519-2标准的低速、远距离网络,它的最大传输距离为1km,最高通讯速率为125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个“2.2千欧”的电阻
在这里插入图片描述

2.代码移植

2.1.rtconfig.h

#define RT_USING_CAN
#define BSP_USING_CAN
#define BSP_USING_CAN1

2.2.工程添加

E:\RTT\rt-thread-4.0.2-USBHID\bsp\stm32\libraries\HAL_Drivers\drv_can.c
E:\RTT\rt-thread-4.0.2-USBHID\components\drivers\can\can.c
E:\RTT\rt-thread-4.0.2-USBHID\bsp\stm32\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_can.c

2.3.打开HAL库

在这里插入图片描述

2.4.修改时钟

usb和can一起使用,usb时钟为48M,can时钟为42M或者45M
在这里插入图片描述
在这里插入图片描述

2.5.can波特率修改

drv_can.c
在这里插入图片描述
tsjw:重新同步跳跃时间单元.范围:CAN_SJW_1TQ~CAN_SJW_4TQ
tbs2:时间段2的时间单元. 范围:CAN_BS2_1TQ~CAN_BS2_8TQ;
tbs1:时间段1的时间单元. 范围:CAN_BS1_1TQ~CAN_BS1_16TQ
brp :波特率分频器.范围:1~1024; tq=(brp)*tpclk1
波特率=Fpclk1/((tbs1+tbs2+1)*brp); 其中tbs1和tbs2我们只用关注标识符上标志的序号,例如CAN_BS2_1TQ,我们就认为tbs2=1来计算即可。
Fpclk1的时钟在初始化的时候设置为42M
则波特率为:42M/((6+7+1)*6)=500Kbps

2.6.添加设备使用例程

thread_can.c
代码死活贴不上来,放弃了

3.验证

开发板can接口连接CANalyst-II,CANalyst-II的USB口接电脑,USB-CAN TOOL工具查看数据发送接收情况
在这里插入图片描述
先粗略的研究一下,可以收发数据了,以后用到在详细研究吧
代码链接:https://download.csdn.net/download/u010915068/20079981

标签:通讯,thread,1TQ,总线,tbs2,rtthread,波特率,STM32F429
来源: https://blog.csdn.net/u010915068/article/details/118517188

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有