C语言
不吃鱼的羊
关注我,有更多好文章,持续更新噢!
展开
-
ADC采集误操作
这几天要做一个ADC采集功能相关的任务,调试过程当中犯了个几个低级错误,记录一下,希望大家也能避免。原创 2024-03-08 11:01:11 · 325 阅读 · 0 评论 -
C语言实现PID算法
在C语言中实现PID算法的基本框架通常包括初始化PID控制器参数、计算PID输出以及更新内部状态变量(如积分项)。在主循环中,每次迭代都会根据给定的设定点和当前测量值计算新的控制信号,并将其应用于实际控制系统。同时,对积分项进行了饱和处理,并对输出做了限幅以保证安全运行。的结构体来存储PID控制器的相关参数,并提供了初始化函数。和计算PID输出的函数。此代码定义了一个名为。原创 2024-03-04 17:44:46 · 556 阅读 · 0 评论 -
C语言实现低通滤波器
【代码】C语言实现低通滤波器。原创 2024-03-04 17:40:45 · 1568 阅读 · 0 评论 -
宏函数和内联函数inline
如果执行函数体内代码的时间,相比于函数调用的开销较大,那么效率的收获会很少。内联函数的使用场景:代码量小,频繁使用的小函数建议使用内联。而代码量大的函数,像有递归、循环的函数不宜使用内联,这种大函数就算你使用内联,编译器一般也会优化成普通函数。内联函数的作用:在函数调用的地方展开函数体,相当于变成一个宏函数,减少函数栈帧的开销,提升效率。内联函数格式就是在普通函数前面加个inline,调用的时候跟正常是一样的。除了我们正常写的函数以外,还有两种特别的函数:内联函数和宏函数。原创 2024-02-22 17:33:07 · 193 阅读 · 0 评论 -
解决芯片跑挂或数据混乱问题
1、最好可以导出出问题时候的RAM数据,一点一点排查每个数组和结构体的数据是否正常。1、芯片不动了,发现运行到hard fault,也就是芯片跑挂。2、从源代码排查每个数组和结构体的长度和操作到的位置。2、发送诊断数据的时候回复数据混乱。原创 2024-02-05 10:48:09 · 99 阅读 · 0 评论 -
一种缩短轮询时间的处理办法
有时候有些任务并不需要有动作,本轮轮询到它,它不需要干活,于是这个时间片就浪费了。但如果其他时间片里面的任务又急着呢?每个任务执行前先看看是否需要执行,如果不需要执行,就给到下一个时间片的任务来执行。这样会导致越靠前的任务被执行到的机会越多,就需要把更高优先级需要更频繁更重要的任务放在前面的时间片里面。1、回到判断任务1是否需要执行。这样操作需要所在线程全部任务都在时间片内,不然有可能一直在判断每个任务是否需要执行。我们平常处理轮询任务的时候,会用时间片的方式来分割开,每个时间片处理某一个任务。原创 2024-02-04 17:16:52 · 231 阅读 · 0 评论 -
J-Link RTT使用方法
英文全称Real Time Transfer,可以不用串口直接用上位机和芯片进行通讯,作用跟串口一样,优点就是不占用串口资源。上行和下行的Buffer是单独分开处理的,有各自的通道。原创 2023-12-25 15:59:01 · 1406 阅读 · 0 评论 -
偶发看门狗叫问题解决
这几天调试程序,发现看门狗叫了,因为是偶发的,就没怎么理,后面发现叫得越来越厉害,有80%以上的概率,决定还是把它解决掉。原创 2023-12-20 19:51:32 · 372 阅读 · 0 评论 -
编译报错invalid storage class for function处理办法
刚刚运行得好好地,改了点东西就编译不过了。invalid storage class for function '函数名'原创 2023-12-10 16:03:49 · 1213 阅读 · 3 评论 -
指针那些事
然后就是C++里面的引用,说白了就是取别名,下面只是举个栗子,这样做是没什么用的,只有传参的时候才能减少堆栈使用。函数怎么调用的可以看看这个例子。基础的指针大家都会用吧。原创 2023-11-04 15:31:07 · 89 阅读 · 0 评论 -
批处理简单教程
打开或关闭回显功能,或显示消息。表示不显示@后面的命令。Sample:通过运行批处理文件对比pause和@pause命令即可明了@的效果。转载 2023-10-17 17:41:09 · 68 阅读 · 0 评论 -
可能是最全的FreeRTOS源码分析及应用开发系列
原文链接:https://blog.csdn.net/Chuangke_Andy/article/details/115397230。版权声明:本文为CSDN博主「安迪西嵌入式」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。本系列通过23篇文章详细介绍了FreeRTOS的配置与使用,手把手带你分析FreeRTOS源码,玩转FreeRTOS应用开发。每篇文章末尾,都有相应的工程源代码下载方式。转载 2023-09-24 14:05:27 · 409 阅读 · 0 评论 -
Windows操作系统生成SSH密钥
打开Git Bash,输入命令:ssh-keygen -t rsa -C "youremail@example.com"密钥类型可以用 -t 选项指定,如果没有指定则默认生成用于SSH-2的RSA密钥,这个命令使用的是rsa。输入完毕后按回车,到底即可,此时 c盘——用户——用户名——.ssh文件夹 里面生成好了“id_rsa”和“id_rsa.pub”文件。原创 2023-08-31 11:35:36 · 6579 阅读 · 0 评论 -
RH850使用GHS MULTI
选路径选操作系统,没有的话就选裸机选芯片不用管这个警告搞个简单的空工程它自己会新建这个src文件夹next下去就完成了工程新建。他会创建个文件给你当示例,路径就在刚才的src文件夹里面。原创 2023-08-23 15:58:19 · 623 阅读 · 0 评论 -
MULTI IDE(Green Hill)链接不上V1.0
软硬件方向都排除了,用能用的电脑来每一个细节对比,发现我这里原来是5V,手滑选了3.3V。重装了USB驱动, 重装了IDE,把可以用的电脑整个包发过来也不行。Renesas Flash Programme刷写是可以的,证明硬件没问题。怀疑是工程包的问题,接收个之前能用的包来试试,发现还是不行,排除工程包问题。设置好的东西就不要手贱乱点,不然自己都忘了原来是怎么设置的。全盘搜索该文件,有两种路径,安装包和工程包。实时保护已经关闭,没有查到保护历史记录。我的电脑里面的设备管理器也能识别出来。原创 2023-08-23 14:03:57 · 104 阅读 · 0 评论 -
Source Insight Table转空格
像我今天就遇到个不允许用Table只能用空格的问题,平常用Table的我就很不习惯,用了Source Insight把所有的Table转换成了空格。option -> File Type Options按照下图勾选,这样后面输入的Table都会自动变化成空格。提交代码的时候,有些库对Table和空格会有要求,不按照规则来的话,提交的时候会校验不过。选中代码内容,Edit -> Special Edit -> Tab to Spaces。首先是对当前的Table转换成空格。原创 2023-08-04 18:43:27 · 2273 阅读 · 0 评论 -
C语言的神奇用法
符号用于预处理指令,它可以将宏参数转换为字符串字面值。TRANS_TO_STR(STR) 是一个宏定义,它将宏或者枚举STR转换为字符串字面值。这种转换可以方便地将枚举值转换为相应的字符串表示,用于日志输出、错误处理等场景。原创 2023-07-25 11:28:43 · 73 阅读 · 0 评论