<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[TanLngB的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/TanLngB</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; TanLngB]]></copyright><item><title><![CDATA[PID控制原理]]></title><link>https://blog.youkuaiyun.com/TanLngB/article/details/134113017</link><guid>https://blog.youkuaiyun.com/TanLngB/article/details/134113017</guid><author>TanLngB</author><pubDate>Mon, 30 Oct 2023 10:07:38 +0800</pubDate><description><![CDATA[在控制过程中，只要有偏差存在，积分环节的输出就会不断增大，直到偏差e(t)=0，输出的u(t)才可能维持在某一常量，使系统在给定值r(t)不变的条件下趋于稳态，因此积分环节能。但微分的作用对输入信号的噪声很敏感，对那些噪声较大的系统一般不用微分，或在微分作用之前先对输入信号进行滤波。控制作用的强弱取决于比例系数Kp, Kp越大，控制越强，但过大的Kp会导致系统振荡，破坏系统的稳定性。图中r(t)是给定值，v(t)是系统的实际输出值，e (t)是给定值与实际值的偏差。在比例PID控制器中，比例环节的作用是。]]></description><category></category></item><item><title><![CDATA[Microchip中文资料的网站]]></title><link>https://blog.youkuaiyun.com/TanLngB/article/details/128640432</link><guid>https://blog.youkuaiyun.com/TanLngB/article/details/128640432</guid><author>TanLngB</author><pubDate>Wed, 11 Jan 2023 10:22:07 +0800</pubDate><description><![CDATA[Microchip中文资料的网站]]></description><category></category></item><item><title><![CDATA[C语言数组指针和指针数组]]></title><link>https://blog.youkuaiyun.com/TanLngB/article/details/120203996</link><guid>https://blog.youkuaiyun.com/TanLngB/article/details/120203996</guid><author>TanLngB</author><pubDate>Thu, 09 Sep 2021 16:27:32 +0800</pubDate><description><![CDATA[C语言数组指针和指针数组
（学习网址记录）

]]></description><category></category></item><item><title><![CDATA[CPU使用率]]></title><link>https://blog.youkuaiyun.com/TanLngB/article/details/119572692</link><guid>https://blog.youkuaiyun.com/TanLngB/article/details/119572692</guid><author>TanLngB</author><pubDate>Tue, 10 Aug 2021 16:17:21 +0800</pubDate><description><![CDATA[一种计算CPU使用率的方法及其实现原理

]]></description><category></category></item><item><title><![CDATA[使用int64]]></title><link>https://blog.youkuaiyun.com/TanLngB/article/details/119003859</link><guid>https://blog.youkuaiyun.com/TanLngB/article/details/119003859</guid><author>TanLngB</author><pubDate>Thu, 22 Jul 2021 17:04:56 +0800</pubDate><description><![CDATA[int64 tempConVal = 0xFFFFFFFFF;

这样定义变量会产生警告：
warning: implicit conversion from ‘long long’ to ‘int64’ (aka ‘long’) changes value from 68719476735 to -1 [-Wconstant-conversion]
且定义的变量在使用的时候还是int32位；
解决办法就是在数据前强制定义：
int64 tempConVal = (int64)0xFFFFFFFFF;

这]]></description><category></category></item><item><title><![CDATA[关于IIC通信详解及PCF8563芯片显示时间]]></title><link>https://blog.youkuaiyun.com/TanLngB/article/details/118240677</link><guid>https://blog.youkuaiyun.com/TanLngB/article/details/118240677</guid><author>TanLngB</author><pubDate>Sat, 26 Jun 2021 09:18:51 +0800</pubDate><description><![CDATA[51单片机入门经验分享8-关于IIC通信详解及PCF8563芯片显示时间
关于IIC通信详解及PCF8563芯片显示时间

]]></description><category></category></item><item><title><![CDATA[C语言累计小技巧]]></title><link>https://blog.youkuaiyun.com/TanLngB/article/details/112212245</link><guid>https://blog.youkuaiyun.com/TanLngB/article/details/112212245</guid><author>TanLngB</author><pubDate>Tue, 05 Jan 2021 08:55:12 +0800</pubDate><description><![CDATA[1.条件语句  表达式1？表达式2(真) : 表达式3(假)
i(i &gt; j) return i;
else return j;
可替换为：
return ((i &gt; j) ? i : j);

]]></description><category></category></item><item><title><![CDATA[I2C总线的SDA和SCL]]></title><link>https://blog.youkuaiyun.com/TanLngB/article/details/111869838</link><guid>https://blog.youkuaiyun.com/TanLngB/article/details/111869838</guid><author>TanLngB</author><pubDate>Mon, 28 Dec 2020 17:08:03 +0800</pubDate><description><![CDATA[串行数据线SDA——负责在设备间传输串行数据 
串行时钟线SCL——负责产生同步时钟脉冲
SCL\SDA是I2C总线的信号线。
I2C总线是共享的总线系统，因此可以将多个I2C设备连接到该系统上。连接到I2C中总线上的设备既可以用作主设备，也可以用作从设备。
主设备负责控制通信，通过对数据传输进行初始化/终止化，来发送数据并产生所需的同步时钟脉冲。从设备则是等待来自主设备的命令，并响应命令的接收。且同步时钟信号只能由主设备产生。
当总线空闲时，SDA和SCL都处于高电平状态，当主机要和某个从机通讯时，会先发]]></description><category></category></item><item><title><![CDATA[GPIO 端口模式寄存器 (GPIOx_MODER) (x = A..I)]]></title><link>https://blog.youkuaiyun.com/TanLngB/article/details/111166143</link><guid>https://blog.youkuaiyun.com/TanLngB/article/details/111166143</guid><author>TanLngB</author><pubDate>Mon, 14 Dec 2020 13:54:22 +0800</pubDate><description><![CDATA[#define HDC_SDA_IN()  {GPIOC-&gt;MODER&amp;=~(3&lt;&lt;(92));GPIOC-&gt;MODER|=0&lt;&lt;92;}    //PC9输入模式
#define HDC_SDA_OUT() {GPIOC-&gt;MODER&amp;=~(3&lt;&lt;(92));GPIOC-&gt;MODER|=1&lt;&lt;92;} //PC9输出模式
通过参考手册，查看GPIO寄存器，如下图所示：

解释输入输出模式操作：
HDC_SDA_IN()]]></description><category></category></item><item><title><![CDATA[STM32高级定时器从模式(四种)]]></title><link>https://blog.youkuaiyun.com/TanLngB/article/details/110821315</link><guid>https://blog.youkuaiyun.com/TanLngB/article/details/110821315</guid><author>TanLngB</author><pubDate>Mon, 07 Dec 2020 16:24:07 +0800</pubDate><description><![CDATA[一、通用定时器从模式:复位模式
使用TIM1的CH1输出PWM脉冲
使用TIM4的CH1作为触发输入通道。
PWM的上升沿触发TIM4的复位模式,复位TIM4计数器并触发中断.
定时器1配置，用来产生PWM脉冲
TIM_HandleTypeDef htimx;              //基本定时器句柄
void ADVANCED_TIMx_Init(void)
{
TIM_ClockConfigTypeDef sClockSourceConfig;    //定时器时钟配置
TIM_MasterConf]]></description><category></category></item><item><title><![CDATA[变频器]]></title><link>https://blog.youkuaiyun.com/TanLngB/article/details/110088424</link><guid>https://blog.youkuaiyun.com/TanLngB/article/details/110088424</guid><author>TanLngB</author><pubDate>Tue, 24 Nov 2020 19:24:53 +0800</pubDate><description><![CDATA[浅析变频器发展现状和趋势
（原文链接）
变频器：利用电力半导体器件的通断作用将工频电源变换为另一频率的电能控制装置。其作用对象主要是电动机。
分类：交—交（频率电压可变）、交—直—交（整流、逆变）
性能优劣：①输出交流电压的谐波对电机的影响；②要电网的谐波污染和输入功率因数；③本身的能量损耗；
变频器电路：整流（三相桥式不可控）、中间直流环节（滤波、储能、缓冲无功功率）、逆变（IGBT三相桥式逆变器）、控制（PWM波形）；
调速方式：变级调速、调压调速、滑差调速、串级调速、整流子电动机调速、液力耦合调速、直]]></description><category></category></item><item><title><![CDATA[#if的使用说明]]></title><link>https://blog.youkuaiyun.com/TanLngB/article/details/109772181</link><guid>https://blog.youkuaiyun.com/TanLngB/article/details/109772181</guid><author>TanLngB</author><pubDate>Wed, 18 Nov 2020 13:57:26 +0800</pubDate><description><![CDATA[本文转载自：白色的回忆
#if的后面接的是表达式
#if (MAX10)||(MAX20)
code…
#endif
它的作用是：如果(MAX10)||(MAX20)成立，那么编译器就会把其中的#if 与 #endif之间的代码编译进去（注意：是编译进去，不是执行！！）
#if defined的使用
#if后面接的是一个宏。
#if defined (x)
…code…
#endif
这个#if defined它不管里面的“x”的逻辑是“真”还是“假”它只管这个程序的前面的宏定义里面有没有定义“x”这个宏，]]></description><category></category></item><item><title><![CDATA[.c文件和.h文件]]></title><link>https://blog.youkuaiyun.com/TanLngB/article/details/109584947</link><guid>https://blog.youkuaiyun.com/TanLngB/article/details/109584947</guid><author>TanLngB</author><pubDate>Mon, 09 Nov 2020 20:03:31 +0800</pubDate><description><![CDATA[c文件与h文件各写什么内容： 理论上来说C文件与h文件里的内容，只要是C语言所支持的，无论写什么都可以的，比如你在h文件中写函数体，只要在任何一个C文件包含此.h文件就可以将 这个函数编译成目标文件的一部分（编译是以C文件为单位的，如果不在任何C文件中包含此.h文件的话，这段代码就形同虚设），你可以在C文件中进行函数声 明，变量声明，结构体声明。那为何一定要分成h文件与C文件呢？又为何一般都在h文件中进行函数，变量声明，宏声明，结构体声明呢？而 在C文件中去进行变量定义，函数实现呢？？原因如下：
1.如果在]]></description><category></category></item><item><title><![CDATA[IAR STM32 调试错误笔记]]></title><link>https://blog.youkuaiyun.com/TanLngB/article/details/109584121</link><guid>https://blog.youkuaiyun.com/TanLngB/article/details/109584121</guid><author>TanLngB</author><pubDate>Mon, 09 Nov 2020 19:25:26 +0800</pubDate><description><![CDATA[1.Warning[25]: Label’Reset_Handler’ is defined pubweak in a section implicitly declared root
将::SECTION.text:CODE:REORDER(1)
改：SECTION .text:CODE:REORDER:NOROOT(1)或者ROOT(1)
因：7.1版本之前，section默认是noroot，但现在是root。NOROOT表示如果符号没有被关联的时候是被优化掉的，如果想不被优化则使用ROOT

...]]></description><category></category></item></channel></rss>