- 博客(14)
- 收藏
- 关注
原创 CAN总线接收方数据采样
CAN总线解决方案:硬同步——当某个设备发送报文时,其他所有设备(接收方)收到SOF下降沿时,接收方将自己的位时序计数周期拨打SS段,与发送方位时序计时保持同步。注:SJW为最大补偿值,当误差为2Tq,SJW位3时,补偿2Tq,当误差为3Tq,SJW位2时,补偿2Tq。接收方数据采样问题二:接收方刚开始采样正确,但时钟有误差,随误差累积,采样点逐渐偏移。位时序:Tq可由用户自己设定其时长,同步段SS段占据1Tq,其他段自己指定。在实际项目中,PTS,PBS1,PBS2占用几个Tq一般存在统一规定。
2024-08-12 11:32:39 317
原创 CAN总线帧格式
10.ACK槽:发送方发送隐性1(在CRC界定符中释放),释放总线,接收方发送显性0,拉开总线,说明接收方接收到了数据。4.IDE(ID扩展标志位),占1位,用于区分式标准格式还是扩展格式,标准格式为显性0,扩展格式为隐性1。1.帧起始:占1位,显性0,张开总线,告知设备要进行数据传输(由于正常状态下CAN总线为隐性1)3.RTR(远程请求标志位):占1位,用于区分数据帧还是遥控帧(数据帧为显性0,遥控帧为隐性1)扩展格式多一个SRR占1位,必须为隐性1,为了兼容标准格式与仲裁(没有实际意义),
2024-08-11 20:59:48 429
原创 高速CAN总线的电平标准
总线张开:CAN_H-CAN_L=2V,压差为2V,表示低电平(显性电平)总线收紧:CAN_L=CAN_H,压差为0,表示高电平(隐形电平)
2024-08-11 20:17:01 260
原创 CAN总线(控制器局域网总线)特征:
4.低速CAN(ISO11519):10K-125Kbps,<1km。3.高速CAN(ISO11898):125K-1Mbps,<40m。7.11位/29位报文ID,用于区分消息功能,同时决定优先级。1.两根通信线(CAN_H,CAN_L).无需公地。5.异步通信,无需时钟线,通信速率与设备各自约定。11.应答,CRC校验,位填充,错误处理等特性。10.可实现广播式与请求式两种传输方式。2.差分信号通信,抗干扰能力强。9.可配置1-8字节的有效载荷。6.半双工,可挂载多设备。
2024-08-11 16:42:39 178
原创 指针的应用一:传递参数
地址传递:不会对数据进行复制,节省了内存与时间,但是在子函数中更改数据会导致主函数数据发生变化,数据不安全。在C语言中通常在指针前加const使其变为只读,更改会报错。上述代码使用地址传递改变主函数数据的特性,实现了返回最大数与最大数出现次数的功能(返回了两个数值)值传递:主函数的数据与子函数数据隔离,更改子函数中数据不会导致主函数数据变化,更安全。由于值传递需要进行申请内存,复制变量,当有大量数据输入时,如数组等变量,使用。函数值通常有两种传递方式。
2024-08-10 21:01:58 108
原创 C语言指针
指针即指针变量,用于存放其他数据单元的首地址,若指针存放了某个数据单元的首地址,则这个指针指向了这个数据单元,若指针存放的值为0,那么这个指针就是空指针。
2024-08-10 20:25:34 108
原创 C语言枚举
用途:定义一个取值受限的整形变量,用于限制变量取值范围;定义:enum{FALSE=0,TRUE=1} EnumName;由于枚举类型较长,通常用typedef更改变量类型名。引用 EnumName=FALSE;
2024-08-01 17:00:50 112
原创 STM32宏定义
用途:用一个字符串代替一个数字,方便快速修改,如#define A 12345。用途:将一个较长的变量类型换个名字,便于使用。关键字:#define。
2024-08-01 16:39:00 91
原创 STM32启动配置
BOOT1为0/1 BOOT0为0 启动主闪存Flash里的程序,一般是这个配置。BOOT1为0 BOOT0为1 启动系统存储器里的程序(串口下载程序)BOOT1为1 BOOT0为1 启动内置SRAM(调试)
2024-07-31 09:27:45 86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人