- 博客(15)
- 收藏
- 关注
原创 内存分布 与 ROM RAM 的关系
在C/C++中,可以使用预处理指令#define定义常量宏。例如:#define PI 3.1415926。在编译时,预处理器会将所有的宏定义进行替换,将宏定义的常量直接嵌入到代码中。
2024-08-06 09:01:14
1985
原创 IIC 读取 EEPROM(AT24C02)
1、EEPROM的发展(1)ROM(Read Only Memory):真正意义上的只读存储器,在出厂的时候数据就写在了芯片里,只能读不能写;(2)PROM(Program Rom):可编程只读存储器,可编程的ROM芯片,出厂的时候芯片是空白的,自己可以写入一次数据,一旦写进去芯片也是只能读不能写;
2024-08-01 16:05:00
391
原创 S32K144 之 FlexMem FlexNVM FlexRAM System RAM SRAM 区别与联系
应用笔记:AN12003应用笔记:AN11983P-Flash , FlexRAM , FlexNVM, SRAM地址map。
2024-08-01 15:30:23
773
原创 UDS 诊断应用层 笔记
子功能有3个。01:由原DID们创建新DID。02:由内存地址来创建新DID。03:删除动态创建的DID。用的比较少,暂时不看了.具体见14229-1-10.6。
2024-07-31 14:16:12
426
原创 UDS网络层 学习笔记
该协议用于网络节点之间数据交互,例如从一个 ECU 到另一个 ECU,或外部 诊断设备和一个 ECU 之间的通信。如果要传送的数据超过了单个的 CAN 帧长度,则需要提供拆分的方法。SF_DL参数在 SF N_PDU 中用于指明服务使用者的字节数单帧举例说明:0210 03 FF FF FF FF FF - 0表示单帧,2表示长度为2SF_DL 出错处理如果网络层接收到一个 SF_DL=0 的单帧(SF),网络层应当忽略接收 SF N_PDU。
2024-07-31 14:15:14
565
原创 UDS on CAN 学习笔记
用于默认的诊断会话的应用层定时参数值应按照如下表 2 设置P2can_server:对ECU接收到诊断请求报文后,发出响应报文的时间要求,最大值为50msP2*can_server:当ECU发送负响应代码为0x78的负响应后,到ECU发出响应报文的时间要求,最大值为5000ms(有的厂家自定义比这个值要小,可能是2000ms)
2024-07-31 14:11:01
604
原创 I2C 简单应用
比如 这里是 读 EEPROM ,EEPROM 外设的地址 在配置中已经设定好是 0x50, 我需要 访问 EEPROM 的 0x00 地址,往并读取其中的数据。比如 这里是 写 EEPROM ,EEPROM 外设的地址 在配置中已经设定好是 0x50, 我需要 访问 EEPROM 的 0x00 地址,往其中写入数据。I2C 写入数据 : 调用 LPI2C_DRV_MasterSendDataBlocking 接口 + 要发送的数据[地址 + 数据]:操作模式 分为 标准模式 和 快速模式;
2024-07-26 11:42:08
1601
原创 I2C总线 简单理解 及 应用
设备寻址序列从最重要的位开始,以最不重要的位结束,实际上是由7位组成的,因为第8位用于指示主设备是向从设备写入(逻辑低)还是从中读取(逻辑高)因此,如果我们首先想读取x轴的数据,我们需要发送设备地址,然后发送x轴的特定内部寄存器地址。所以这次主设备将SDA线的控制权交给从设备,如果从设备成功接收了前一个序列,它将把SDA线拉低到所谓的确认状态。在寻址之后,数据传输序列开始,要么来自主设备,要么来自从设备,这取决于在读/写位选择的模式。:I2C总线的设计使其成为低功耗的通信方式,适用于电池供电的设备。
2024-07-25 17:43:33
617
原创 ADC滤波的10种经典算法
A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值能有效克服因偶然因素引起的脉冲干扰无法抑制那种周期性的干扰平滑度差10。
2024-07-25 13:25:35
394
原创 SPI 接线的注意点
比如,假设一个设备是SPI主机,如果其SPI接口管脚标注为SO(串行输出),因为是主机上的,所以就是主机输出,对应的意思就是Master Out,也就是Master Out Slave In,也就是 SPI接口的MOSI,所以就需要去另外一边的SPI设备的MOSI。“ 这是怎么回事呢?所以,单纯看SO或SI,是无法判断对应的是MISO还是MOSI,需要根据这个设备,是SPI主机还是SPI从机,做进一步的分析判断。SPI主机的 MOSI,直接 接 SPI从机的MOSI,因为前者是输出,后者是输入。
2024-07-25 13:20:52
1306
原创 C/C++中extern函数使用详解
声明用来告诉编译器变量的名称和类型,而不分配内存,不赋初值。定义为了给变量分配内存,可以为变量赋初值。注:定义要为变量分配内存空间;而声明不需要为变量分配内存空间。
2024-06-26 08:55:53
2607
原创 回调函数在两个文件间的使用和调用
回调函数的用法是一个程序员基本的修养,掌握回调函数也是基本的要求。个人理解总结:回调函数即在A中定义,B中实现,当A中代码需要应用的时候,利用函数指针的方式去调用,相当于在运行时将B中实现的代码搬入A中运行。A中需要用到B中的代码可以直接用全局变量,例如全局变量为g_callback,调用就直接g_calback(参数)即可。B中需要定义两个函数,一个是实现B功能的函数,一个是初始化init注册表的函数.2.定义回调函数注册表(一个回调函数类型定义的全局变量,将值赋给全局变量)1.首先在A中头文件。
2024-06-25 13:34:04
274
原创 C语言回调函数,提升C技巧必备
函数指针常量 :Max;函数指针变量:p;数名调用如果都得如(*myFun)(10)这样,那书写与读起来都是不方便和不习惯的。所以C语言的设计者们才会设计成又可允许myFun(10)这种形式地调用(这样方便多了,并与数学中的函数形式一样)。函数指针变量也可以存入一个数组内。数组的声明方法:int (*fArray[10]) ( int );我们先来看看百度百科是如何定义回调函数的:回调函数就是一个通过函数指针调用的函数。
2024-06-25 13:11:16
936
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人