<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SjzEboy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/SjzEboy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SjzEboy]]></copyright><item><title><![CDATA[rt-thread-studio排除构建和添加构建]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/132055605</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/132055605</guid><author>SjzEboy</author><pubDate>Wed, 02 Aug 2023 09:56:52 +0800</pubDate><description><![CDATA[排除构建后，此文件会直接在资源管理器里消失，但并没有删除源文件，再在导航器里找到文件，选择添加构建。]]></description><category></category></item><item><title><![CDATA[VSCODE使用C++和C混合编程]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/124388324</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/124388324</guid><author>SjzEboy</author><pubDate>Wed, 27 Apr 2022 10:25:56 +0800</pubDate><description><![CDATA[c库的本质，是一堆 .o文件的集合，熟悉makefile的都知道，.o是.c文件经过编译后产生的object文件。不管是main.c还是mian.cpp，都要编译成main.o 然后main.o再链接其余的依赖库或者其他.o生成最终可执行目标文件。

C语言h文件里，是有函数的声明的，






...]]></description><category></category></item><item><title><![CDATA[libmodbus在ARM linux开发板上使用]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/124318222</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/124318222</guid><author>SjzEboy</author><pubDate>Thu, 21 Apr 2022 12:17:58 +0800</pubDate><description><![CDATA[一、源码下载

1、libmodbus官网

libmodbus

2、下载

选择长期稳定版本libmodbus-3.1.6.tar.gz

3.拷贝到虚拟机

通过fillzilla或者vmtools直接拖动到linux虚拟机中

二、交叉编译

1、解压

拷贝到相应目录，解压，例如拷贝在/home/modbus下，modbus目录需要自己创建

在home/modbus下打开terminal 输入解压命令

tar  -zxvf  libmodbus-3.1.6.tar.gz

解压完成后在同目..]]></description><category></category></item><item><title><![CDATA[vsocde空格太小解决办法]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/124293643</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/124293643</guid><author>SjzEboy</author><pubDate>Wed, 20 Apr 2022 11:41:51 +0800</pubDate><description><![CDATA[vscode 默认空格间距很小，导致代码看起来不美观，实际是字体的问题。换个字体就好了，点击vscode左下角的设置，将图中的字体栏内容改为下图中所示，重启vscode即可。


]]></description><category></category></item><item><title><![CDATA[linux Unable to locate package python3解决办法]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/124165771</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/124165771</guid><author>SjzEboy</author><pubDate>Thu, 14 Apr 2022 10:32:10 +0800</pubDate><description><![CDATA[1.输入sudo apt -y install python-3 提示Unable to locate package python3，查了下有人说要先update一下。

2.输入sudo apt-get install update 提示成功后，再次重复步骤1，结果依旧。并且再次输入sudo apt-get install update 居然开始提示连升级都不行了 “Unable to locate package update“

3. goole开始查资料。有人说要用sudo apt-get upd]]></description><category></category></item><item><title><![CDATA[STM32 18B20程序]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/119697262</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/119697262</guid><author>SjzEboy</author><pubDate>Sat, 14 Aug 2021 10:26:04 +0800</pubDate><description><![CDATA[好久没用过18B20了,今天项目用到了，从网上找了一份现成的,原文地址https://blog.youkuaiyun.com/qq_34885669/article/details/89521045 但是他是用的位段方式，初始化也是用的操作寄存器，和我的习惯不太一样，改了一下改成了库文件操作，亲测可用。18B20没什么难度。主要就是时序问题，一般不行的话都是延时定时器或者滴答配置错误，建议用滴答做us延时，如果用的操作系统，建议操作18B20时先关中断，



////////////////////////////.]]></description><category></category></item><item><title><![CDATA[UCOSII邮箱问题]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/119573983</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/119573983</guid><author>SjzEboy</author><pubDate>Tue, 10 Aug 2021 16:59:55 +0800</pubDate><description><![CDATA[学习ucosII的过程中，使用了邮箱，发送线程收到串口数据后，在收到结束符，完成一帧的收取后，动态开辟一个空间，将此空间的指针作为消息内容，发送到接收处理线程，处理线程处理完后，释放此空间，调试程序发现内存泄漏现象，经过分析发现是由于串口数据发送过快，在之前的邮箱消息还未处理的时候，新的邮箱消息又进行了发送，导致消息指针被覆盖，最后释放的是覆盖后的指针，之前的指针未释放，时间长之后内存满，导致无可用内存， 弃用邮箱改用消息队列，问题解决。像rtt的邮箱，是带队列的，这个比较好。效率高而且不会覆盖。
...]]></description><category></category></item><item><title><![CDATA[STM32 APP跳转到IAP]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/118905145</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/118905145</guid><author>SjzEboy</author><pubDate>Mon, 19 Jul 2021 17:38:39 +0800</pubDate><description><![CDATA[之前的项目一直使用IAP跳转到APP很顺利，新项目需要实现APP跳转到IAP，一开始想的挺简单的，就直接在APP里把地址跳到IAP就行，结果发现是可以执行到IAP的main函数，然后就卡死了。卡死的位置在

startup文件的第273行。感觉是中断向量表有问题， 因为在APP中是做了中断向量表偏移的，

于是在IAP的开始，也加上了SCB-&gt;VTOR = FLASH_BASE; 认为这样就能把中断表给偏移回来，结果没什么变化， 然后在APP里跳转IAP之前，禁止总中断，清各种的中断标志，结果还是..]]></description><category></category></item><item><title><![CDATA[掉电后xml文件丢失]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/114962112</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/114962112</guid><author>SjzEboy</author><pubDate>Thu, 18 Mar 2021 09:26:30 +0800</pubDate><description><![CDATA[linux工控机，写了个xml文件作为系统的一些参数配置文件，发现掉电后再上电的时候，要么xml内容被清空，要么就是内容少了一些，节点不完整，不是有效的xml文件， 百思不得其解。被折磨了好几天，正在准备将SD卡存储换为用flash存储一了百了的时候，还是不死心在网上查了查，找到了大概的方向。解决了。

写xml是用的tinyxml2 他的SaveFile接口内。只有fopen, fclose, 这样的话，只是将数据刷新到系统缓存。未同步到硬件真正写入， 操作系统会在合适的时间同步到硬件，这个时间是不确定.]]></description><category></category></item><item><title><![CDATA[rt-thread 使用libmodbus-rtu库]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/111404071</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/111404071</guid><author>SjzEboy</author><pubDate>Sat, 19 Dec 2020 14:17:55 +0800</pubDate><description><![CDATA[将libmodbus库从软件包里启用, libmodbus是基于select操作的，依赖于文件系统和libc,需要在rt-thread中开启对应的支持。
一开始以为作为主站时，有函数可以自动的指定读取的从站地址的范围，比如设定从从站1读到从站20，找了会没找到，就自己通过动态调用modbus_set_slave(ctx, slaveaddrs);来实现轮询了，这样好处还是挺明显的，灵活性比较大。测试使用的是RS232, 如果是485的话需要指定    modbus_rtu_set_serial_mode(c]]></description><category></category></item><item><title><![CDATA[STM32移植freemodbus详细过程]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/81146979</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/81146979</guid><author>SjzEboy</author><pubDate>Sat, 21 Jul 2018 17:18:42 +0800</pubDate><description><![CDATA[http://www.amobbs.com/thread-5491615-1-1.html

 

查看原地址，讲述非常详细，留存备查！]]></description><category></category></item><item><title><![CDATA[sprintf打印浮点数都是0]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/79870057</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/79870057</guid><author>SjzEboy</author><pubDate>Mon, 09 Apr 2018 17:45:19 +0800</pubDate><description><![CDATA[C语言，用了ucosII。 在用到sprintf打印浮点数时，打印出来的全是0.将OS的所有任务堆栈设置为8字节对齐，就可以正常打印了。__align(8) OS_STK         DATA_SHOW_STK[DATA_SHOW_STK_SIZE]...]]></description><category></category></item><item><title><![CDATA[Keil C语言随机数]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/79358393</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/79358393</guid><author>SjzEboy</author><pubDate>Sat, 24 Feb 2018 09:00:21 +0800</pubDate><description><![CDATA[#include 

int i;
i= rand()%10;


这样产生的是10以内的随机数， 100以内就%100就可以。]]></description><category></category></item><item><title><![CDATA[TL431常用电路]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/77119293</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/77119293</guid><author>SjzEboy</author><pubDate>Sat, 12 Aug 2017 15:31:57 +0800</pubDate><description><![CDATA[TL431的主要作用是使得电路获得更稳定的电压，TL431是一种较为精密的可控稳压源，有着较为特殊的动态阻抗。其动态响应速度快，输出噪声低，价格低廉。

  注意上述一句话概括，就是便宜，精密可控稳压源TL431。

  TL431的输出电压可以通过两个电阻任意地设置到从2.5V到36V电压，工作电流可以从0.1~100mA，输出电压纹波低。

  几种常用的用法如下：

  
]]></description><category></category></item><item><title><![CDATA[C语言随机数]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/76269354</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/76269354</guid><author>SjzEboy</author><pubDate>Fri, 28 Jul 2017 16:41:45 +0800</pubDate><description><![CDATA[在C语言函数库中包含了一个产生随机数的函数： int rand( void ); 
函数返回的是一个界于0～32767之间的伪随机数，包括0和32767。注意，这里产生的是伪随机数，不是真正意义上的随机数，看下面的程序： 
#include "stdlib.h" 
#include "stdio.h"  
void main(  ) 
{ 
  /* 输出一个伪随机数 */   
p]]></description><category></category></item><item><title><![CDATA[RC电路 CR电路 理解]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/72900275</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/72900275</guid><author>SjzEboy</author><pubDate>Wed, 07 Jun 2017 15:29:02 +0800</pubDate><description><![CDATA[在模拟及脉冲数字电路中，常常用到由电阻R和电容C组成的RC电路，在些电路中， 电阻R和电容C的取值不同、输入和输出关系以及处理的波形之间的关系，产生了RC电路的 不同应用，下面分别谈谈微分电路、积分电路、耦合电路、脉冲分压器以及滤波电路。
1. RC微分电路

　　如图1所示，电阻R和电容C串联后接入输入信号VI，由电阻R输出信号VO，当RC 数值与输入方波宽度tW之间满足：RCW，这种电路]]></description><category></category></item><item><title><![CDATA[RC电路波形]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/72899785</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/72899785</guid><author>SjzEboy</author><pubDate>Wed, 07 Jun 2017 14:55:33 +0800</pubDate><description><![CDATA[电阻R和电容C串联接入输入信号VI，由电容C输出信号V0，当RC （τ）数值与输入方波宽度tW之间满足：τ>>tW （一般至少为10倍以上），这种电路称为积分电路




在电容C两端（输出端）得到锯齿波电压，如图6所示：







1)  t=t1 时

      Vi由0->Vm，因为电容两端的电压不能突变，所以此时Vo=Vc=0;




2) ]]></description><category></category></item><item><title><![CDATA[Keil修改工程名]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/72636479</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/72636479</guid><author>SjzEboy</author><pubDate>Tue, 23 May 2017 08:59:04 +0800</pubDate><description><![CDATA[假设原来的工程文件名是first，要改成second1.在工程文件目录中，将first.uvopt和first.uvproj名字改成second.uvopt和second.uvproj。2.其他first文件统统删除。3.打开second.uvproj,4.点击品字形图标，在弹出的界面上，双击“Progect Components”下面的工程名，修改成second5.点击project》Optio]]></description><category></category></item><item><title><![CDATA[C#浮点数保留两位小数的方法]]></title><link>https://blog.youkuaiyun.com/SjzEboy/article/details/51142928</link><guid>https://blog.youkuaiyun.com/SjzEboy/article/details/51142928</guid><author>SjzEboy</author><pubDate>Wed, 13 Apr 2016 14:14:44 +0800</pubDate><description><![CDATA[1、Math.Round(0.333333,2);//按照四舍五入的国际标准
2、
    double dbdata=0.335333;
    string str1=String.Format("{0:F}",dbdata);//默认为保留两位
3、
    float i=0.333333;
    int j=(int)(i * 100);
    i = j/100;
]]></description><category></category></item></channel></rss>