- 博客(120)
- 收藏
- 关注
原创 【嵌入式 - 关于地址对齐】
对齐操作是为了确保栈顶指针满足硬件或软件的对齐要求,而不是为了改变栈的计算逻辑。对齐操作最多只会将栈顶指针向下调整 7 个字节,对栈的使用影响非常小。如果栈顶指针已经是 8 字节对齐的,对齐操作不会改变它的值。对齐操作不会导致计算结果错误,而是为了确保系统的稳定性和性能。
2025-01-09 11:26:02
956
原创 【嵌入式 - 英飞凌 - Interrupt/Direct/DMA通讯】
在英飞凌MCU中,UART通信可以通过三种主要模式进行:Interrupt(中断)、Direct(直接)和DMA(直接存储器访问)。总结来说,中断模式适合于数据传输速率较低的应用,直接模式适用于简单的串口通信,而DMA模式适合于高速且数据量大的传输场景,可以有效地减轻CPU负担。每种模式都有其适用的场景和优缺点,开发者可以根据具体的应用需求选择合适的通信模式。
2024-12-27 10:47:10
756
原创 【C语言 - 简易架构】
宏定义用于在编译时替换代码中的文本,常用于条件编译和常量定义。自定义类型可以通过typedef在头文件中定义,以提高代码的可读性和可维护性。在C语言中,变量的定义位置是一个需要仔细考虑的问题。在C语言中,函数的声明和定义是两个不同的概念,它们在程序中扮演着不同的角色。函数定义则包含了函数的具体实现,即函数体。它定义了函数的具体行为,包括函数体中的所有逻辑和操作。函数声明通常放在头文件中,而定义则放在源文件中。
2024-11-12 15:53:07
474
原创 【C语言实现PID控制PWM】
在实际应用中,使用PID控制器来控制PWM占空比以调节输出电压是一种常见的做法。以下是简化的C语言代码示例,它展示了如何根据测量的电压值使用PID控制器来更新PWM占空比,同时根据系统性能动态调整PID增益。
2024-06-13 14:50:16
1618
2
原创 【C语言实现PID控制器】
/ PID控制器参数// 比例增益// 积分增益// 微分增益// PID控制器状态// 误差的积分// 上一次的误差。
2024-06-13 14:41:26
3535
原创 【嵌入式 - 关于MCU的内存分配】
嵌入式开发中,自定义内存区域以满足特定需求非常常见。这通常涉及编译器和链接器的配置。在上述链接脚本中,可以看到定义了 FLASH 和 SRAM 的起始地址和长度,并在 SECTIONS 部分定义了各个内存区域的分配。通过合理地使用链接脚本和内存管理函数,开发者可以有效地自定义和管理 MCU 的内存区域,以满足特定的应用需求。假设需要将某些特定变量放置在特定的内存区域,可以使用指令。
2024-06-07 13:13:15
3000
1
原创 【嵌入式 - Tutorial: Makefile Projects with Eclipse】
Tutorial: Makefile Projects with Eclipse
2024-04-29 14:39:23
847
原创 【嵌入式 - 输出驱动电路Open Drain (开漏)和Push-Pull (推挽)】
Open drain 和 push-pull 是两种常见的输出驱动电路。它们在数字电子电路中用于控制信号的输出。
2024-04-15 11:42:07
6217
原创 【通信 - CRC检查】
CRC是循环冗余校验(Cyclic Redundancy Check)的缩写。它是一种错误检测技术,通常用于检测数据传输或存储中的错误。CRC通过对数据进行多项式除法运算来生成一个校验码,发送方将这个校验码随数据一起发送给接收方,接收方再对接收到的数据进行相同的计算,并将结果与接收到的校验码进行比较,以确定数据是否在传输或存储过程中发生了错误。CRC广泛应用于计算机网络、存储设备以及数据通信等领域。
2024-04-15 11:38:17
2059
原创 【英飞凌DAVE - TIMER】
通过定时器,可以确保这些任务在预定的时间间隔内得以执行,提高系统的稳定性和可靠性。生成精确的时间延迟: 定时器可以用于生成精确的时间延迟,以便在程序中执行特定的操作或任务。这在需要精确时间控制的应用中很常见,比如在通信协议中等待特定时间窗口的到来。例如,在通信中,可以使用定时器来检测数据传输超时,并采取相应的错误处理措施。总的来说,定时器在嵌入式系统中起着至关重要的作用,它们提供了一种有效的方式来控制时间、调度任务和执行时间相关的操作,从而实现系统的功能和性能要求。这样的话,当时间条件满足,会触发中断。
2024-04-12 10:25:14
1109
原创 【英飞凌 - UART - 波特率】
在进行波特率调整时,应确保所有相关设备的通信参数保持一致,以确保通信的稳定性和可靠性。当工业控制系统中的某些设备需要更换或升级时,新设备可能具有不同的通信参数,包括波特率。因此,需要根据新设备的要求修改通信波特率,以确保设备之间的通信正常进行。例如,实时性要求较高的应用可能需要较高的通信速率,而对于一些节能环保型应用,可能会采用较低的通信速率以降低功耗。如果在工业控制系统中,某些设备之间的通信距离发生变化,可能需要调整通信波特率。通常情况下,较长的通信距离需要较低的波特率,以确保信号稳定传输。
2024-04-12 10:23:58
489
原创 【力扣 - 除自身以外数组的乘积】
给你一个整数数组nums,返回 数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据 保证 数组nums之中任意元素的全部前缀元素和后缀的乘积都在32位 整数范围内。请 不要使用除法,且在O(n)时间复杂度内完成此题。
2024-03-25 15:07:03
341
原创 【力扣 - 合并区间】
以数组intervals表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。
2024-03-12 14:13:06
290
原创 【力扣 - 最大子数组和】
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。
2024-03-12 14:04:06
422
原创 【力扣 - 和为K的子数组】
给你一个整数数组nums和一个整数k,请你统计并返回 该数组中和为k的子数组的个数。子数组是数组中元素的连续非空序列。
2024-03-11 13:59:42
753
原创 【力扣 - 找到字符串中所有字母异位词】
给定两个字符串s和p,找到s中所有p的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。指由相同字母重排列形成的字符串(包括相同的字符串)。
2024-03-11 11:27:00
646
原创 【力扣 - 三数之和】
给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为 0 且不重复的三元组。:答案中不可以包含重复的三元组。
2024-03-06 14:06:06
524
原创 【力扣 - 盛最多水的容器】
给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。:你不能倾斜容器。
2024-03-04 15:12:59
385
原创 【力扣 - 最长连续数组】
给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)的算法解决此问题。
2024-03-04 14:27:14
259
原创 【力扣 - 多数元素】
给定一个大小为n的数组nums,返回其中的多数元素。多数元素是指在数组中出现次数 大于n/2的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。
2024-02-29 11:44:58
987
原创 【力扣 - 只出现一次的数字】
给你一个 非空 整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
2024-02-28 13:54:14
680
原创 【力扣 - 爬楼梯】
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?我们用 表示爬到第 级台阶的方案数,考虑最后一步可能跨了一级台阶,也可能跨了两级台阶,所以我们可以列出如下式子:它意味着爬到第 级台阶的方案数是爬到第 级台阶的方案数和爬到第 级台阶的方案数的和。很好理解,因为每次只能爬 1 级或 2 级,所以 只能从 和 转移过来,而这里要统计方案总数,我们就需要对这两项的贡献求和。
2024-02-27 10:07:20
692
原创 【力扣 - 买卖股票的最佳时机】
给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0。
2024-02-26 13:15:52
327
原创 【力扣 - 搜索插入位置】
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。
2024-02-23 15:58:11
554
原创 【力扣 - 将有序数组转化为二叉搜索树】
二叉搜索树的中序遍历是升序序列,题目给定的数组是按照升序排序的有序数组,因此可以确保数组是二叉搜索树的中序遍历序列。给定二叉搜索树的中序遍历,是否可以唯一地确定二叉搜索树?答案是否定的。如果没有要求二叉搜索树的高度平衡,则任何一个数字都可以作为二叉搜索树的根节点,因此可能的二叉搜索树有多个。如果增加一个限制条件,即要求二叉搜索树的高度平衡,是否可以唯一地确定二叉搜索树?答案仍然是否定的。
2024-02-22 15:03:43
724
原创 【力扣 - 二叉树的直径】
给你一棵二叉树的根节点,返回该树的 直径。二叉树的 直径 是指树中任意两个节点之间最长路径的 长度。这条路径可能经过也可能不经过根节点 root。两节点之间路径的 长度 由它们之间边数表示。
2024-02-21 15:49:58
511
原创 【力扣 - 二叉树的最大深度】
给定一个二叉树 root ,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。树中节点的数量在 区间内。方法一:深度优先搜索思路与算法如果我们知道了左子树和右子树的最大深度 和 ,那么该二叉树的最大深度即为而左子树和右子树的最大深度又可以以同样的方式进行计算。因此我们可以用「深度优先搜索」的方法来计算二叉树的最大深度。具体而言,在计算当前二叉树的最大深度时,可以先递归计算出其左子树和右子树的最大深度,然后在 O(1)时间内计算出当前二叉树的最大深度。递归在访
2024-02-19 14:56:00
473
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人