- 博客(28)
- 收藏
- 关注
原创 【通讯协议】S32K142芯片——LIN通信的学习和配置
随着汽车电子的发展,汽车上的电子零件正在逐渐地增加。汽车的正常运作离不开各个元器件之间的协调工作,因此,零部件之间的通讯显得尤为重要。在汽车通讯中我们经常在使用CAN总线通讯,但是了在兼顾系统通讯的同时,尽量减少成本,LIN通讯则应时而生。在不需要CAN总线的带宽和多功能的场合,比如雨刮器,车门雷达等制动装置之间的通讯使用LIN总线可大大节省成本。本文先大概介绍了什么是LIN通信,然后对LIN报文结构进行分析,最后讲述了LIN通信的代码配置以及注意事项,希望能帮助到大家!LIN通信引脚和时钟配置。
2024-09-22 18:46:10 1262
原创 【硬件知识】关于RAM的“那些事”
上图展示了DRAM和SRAM的结构区别。左侧是DRAM的存储单元,它由一个电容和一个晶体管组成,而右侧则是SRAM的存储单元,它由六个晶体管组成,形成两个交叉耦合的反相器结构。,通常是交叉耦合的晶体管对来保持稳定的电平状态。因为不依赖电容,数据可以保持很长时间,除非电源被切断。结构复杂,存储密度较低,但访问速度快。电容负责存储电荷(即数据),但电荷会随时间泄漏,因此需要定期刷新。结构相对简单,能实现较高的存储密度。: 每个存储单元包含。
2024-09-08 19:59:55 501
原创 【电机控制】TC275芯片——ADC外设驱动的配置与实现
ADC驱动外设用于将模拟信号转换为数字信号,是嵌入式系统中的重要组件。它负责将模拟信号(如电压、温度、压力等)转换为可被处理器理解的数字信号;同时从传感器或其他外部模拟设备获取数据,并将其转换为数字形式供后续处理,在电机控制中电流,电压,温度等参数的精确获取对电机控制性能有着至关重要的作用,因此对ADC外设的合理配置显得至关重要。示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
2024-09-06 18:01:21 1305
原创 【C语言】字符串——strlen函数
strlen函数用于计算一个以 null 结尾的字符串的长度,不包括终止符 ‘\0’。它返回字符串的字符数。
2024-08-11 17:28:56 291
原创 【硬件知识】车规级开发等级——AEQ-100和ISO26262标准
AEQ-100(Automotive Electronics Council Q100)是一个由汽车电子委员会(AEC)制定的标准,主要用于保证汽车电子元件的可靠性。它是一个关于汽车级半导体器件的应力测试标准,旨在确保这些器件在汽车恶劣环境中的可靠性能。ISO 26262是一个国际功能安全标准,专门用于道路车辆。它定义了汽车电气和电子系统的功能安全要求,以确保在系统故障时不会对人类生命或环境造成不可接受的风险。
2024-08-05 19:19:27 1054
原创 【C语言】大小端存储的定义及其判断方法
大端(存储)模式:是指数据的低位保存在内存的高低址中,而数据的高位,保存在内存的低地址中;小端(存储)模式:是指数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高低址中。作为一个嵌入式工程师,我们在驱动开发中配置各种寄存器,经常需要对某个寄存器的几个比特位进行读写操作。不同存储模式的嵌入式设备互联及网络数据传输,也需要考虑大小端模式。因此,掌握大端模式和小端模式的存储方式很有必要。
2024-08-04 18:46:19 400
原创 【C语言】内联函数的“前世今生”
内联函数(inline function)是一种在编译时被特殊处理的函数,它的调用会被直接替换为函数体本身,从而避免了函数调用的开销。编译阶段:内联函数是在编译阶段,编译器会尝试将内联函数的调用替换为函数体的代码,从而避免函数调用的开销;宏定义通过预处理器进行文本替换,在编译前的预处理阶段,宏会被替换为其定义的代码。类型检查:编译器会对内联函数进行严格的类型检查,确保参数类型和返回类型正确,如果传入的参数类型不匹配,编译器会报错;而宏定义没有类型检查,只是进行简单的文本替换,容易引发隐藏的错误。
2024-08-03 20:06:08 505
原创 【C语言】二维数组的创建与初始化
C语言二维数组的定义格式为:数组类型 数组名称[常量表达式1][常量表达式2]…[常量表达式n]={{数组1},{数组2},{数组n}};
2024-08-01 19:17:32 197
原创 【C语言】运算符——sizeof
sizeof是C语言中的运算符,并不是函数用于在编译时确定类型(直接将大小计算结果嵌入生成的代码中,不会引起运行时开销。)或变量的大小(以字节为单位)。它的结果类型是 ‘size_t’,这是一个定义在 文件中的无符号整数类型,专门用于表示对象的大小。‘sizeof’ 运算符在C语言中有许多应用,理解其用法对于编写高效和正确的C代码至关重要。
2024-07-31 17:37:30 630
原创 【C语言】结构体与联合体之间的“爱恨情仇”
结构体适合用于表示多种数据的组合,能够容纳多个成员且可同时使用;而联合体则适合用来处理几个可能的选择,能节省内存但一次只能使用一个成员。这是它们最主要的区别和特点。
2024-07-25 23:56:03 1034
原创 【每日一题】冒泡排序
给定一个 n 个元素整型数组 nums ,请使用冒泡排序算法将数组重新排序,并将数组依次打印出来。输入: nums = [34,56,12,14,99,23],输出: 12 14 23 34 56 99。
2024-07-21 19:29:53 204
原创 【每日一题】二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1。
2024-07-14 16:50:10 309
原创 【C语言】指针——指针和指针类型
指针的类型并不能决定指针的大小(这是由平台决定的),而是决定了指针向前或者向后走一步有多大(距离)。指针的类型决定了,对指针解引用的时候有多大的权限(能操作几个字节)。比如: char* 的指针解引用就只能访问一个字节,而 int* 的指针的解引用就能访问四个字节。
2024-07-05 17:29:45 306
原创 【C语言】内存分配——栈区、堆区、全局区、常量区和代码区
在C语言中,内存分布图是一个重要的概念,它展示了程序在内存中的存储结构,帮助理解程序中变量和数据存储的位置、大小和关系。通过了解内存分布图,可以更好地优化程序的内存使用和理解程序的执行过程。本文将介绍C语言中的内存分布图,包括栈、堆、全局区和代码区等部分,帮助读者深入理解C语言的内存管理和程序执行过程。栈区由编译器自动分配释放,由操作系统自动管理,无须手动管理。栈区上的内容只在函数范围内存在,当函数运行结束,这些内容也会自动被销毁。栈区按内存地址由高到低。
2024-06-26 15:32:59 2393
原创 【电机控制】TC275芯片——DFlash组件的学习和使用
在电机控制系统中我们需要处理许多数据,其中对于电机位置偏移量,PID参数等数据,我们要考虑数据的长期保存和掉电保存等问题,而TC275芯片中的DFLASH模块恰好能够满足这一条件,利用外扩的EEPROM特性来存储一些参数,保存一些掉电后需要保存的数据等。Read Only Memory,只读存储器,最初代表一种出厂后只能读不能写、不掉电的设备。烧入数据后,无需外加电源来保存数据,且断电数据不丢失。PROMPROM,Programmable ROM,可编程ROM。这是一种可以用刻录机将资料写入的ROM内存,
2024-05-30 11:43:31 1098
原创 【通讯协议】TC275芯片——SPI通讯配置
随着电机控制领域的不断发展,通讯方式也越来越重要,选择合适的通讯方式对获取电机实时的电机参数有着重要的意义,而我们今天介绍的SPI通讯是电机与as5047p编码器之间进行数据传输的关键。TC275芯片的SPI配置无非就是一些引脚配置,以及与SPI相关的特定参数配置例如片选,时钟参数等,其中最关键就是要读懂芯片提供的例程中SPI通信实现的逻辑,这个是最重要的,引脚等配置是提供了一个好的平台,而如何使用则在于你对一些函数API的调用。
2024-05-27 17:31:25 1296 1
原创 【电机控制】BLDC有感FOC控制——基于AS5047p芯片的电机速度获取和计算
在机器人、AGV、数控机床、以及高精度运动控制中,伺服控制器扮演着重要角色。它是运动控制的关键组成部分,目前常采用基于FOC的电流、速度以及位置三闭环控制策略,而速度检测的准确与否直接影响系统的控制精度。本文主要介绍了磁编码器的工作原理,三种测速方法,最后再根据介绍的一种测速方法用代码实现展示。本文介绍了磁编码器的工作原理,介绍了M法和T法测速的原理,并用代码实现了M法测速,并成功实现了测速。
2024-05-21 16:01:44 1305 2
原创 【电机控制】TC275芯片——ABZ解码实现方式
随着电动汽车在国内迅速发展,电机控制领域方面的技术的发展越来越受到人们的重视,本文就介绍了电机控制中位置的获取方式:如何通过TC275芯片对增量编码器的ABZ信号进行解码和处理。以上就是今天要讲的内容,本文仅仅简单介绍了ABZ解码的实现方式,而ABZ解码是为了获得电机的位置,为后面对电机速度计算做的铺垫,有感兴趣的朋友可以关注我后续的电机控制专栏。
2024-05-17 23:36:09 2386 1
原创 【C语言】数据存储——整形在内存中的存储
在使用C语言时,我们根据自己所需会声明各种各样的数据类型,例如整形,浮点型等,了解数据在内存中的存储方式,对我们理解计算机一些底层运行逻辑和我们提高自身的“内功修为”有着很大的帮助,今天我们就先来介绍一下整形在内存中的存储方式。本文通过整形数据的表达方式和大小端的存储形式这两方面讲述了整形数据在内存中的存储方式,对计算机如何处理繁杂的数据方式有了大概的理解和认识。
2024-05-15 15:03:28 879 1
原创 【通讯协议】TC275芯片——CAN FD配置
通过CAN盒与电机控制芯片TC275进行CAN-FD通讯,以波特率为2MHZ的传输速度向上位机传输一批电机数据,同时可以启停电机。
2024-05-11 15:28:49 2011 1
原创 【电机控制】BLDC有感FOC控制——ADC电流采样
在液压悬架电机FOC控制系统中,利用运算放大器对电流进行ADC采样,每隔 50us对电机三相电流进行采样并进行相关运算。
2024-05-11 10:10:42 1113
原创 【C语言】关键字——volatile
本文仅仅简单介绍了编译器的优化逻辑,以及关键字volatile的应用场景,让我们更深入理解volatile这一关键字。
2024-05-10 15:33:24 326
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人