<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wanglong3713的博客。]]></title><description><![CDATA[学习，记录，提高，分享。]]></description><link>https://blog.youkuaiyun.com/wanglong3713</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wanglong3713]]></copyright><item><title><![CDATA[Keil编译后自动重命名HEX文件]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/168976449</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/168976449</guid><author>wanglong3713</author><pubDate>Sat, 24 Oct 2026 20:07:44 +0800</pubDate><description><![CDATA[本文介绍如何通过Keil编译后自动备份带时间戳的HEX文件。通过编写批处理脚本，获取当前日期时间（格式：YYYYMMDD_HHMMSS），将原始123456789.hex复制为123456789_20261024_102400.hex，实现自动归档。在Keil中配置“After Build”调用该脚本，确保每次编译后生成带时间戳的副本，避免覆盖原始文件，提升版本管理效率。]]></description><category></category></item><item><title><![CDATA[51单片机STC8G1K08输出PWM]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/153277933</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/153277933</guid><author>wanglong3713</author><pubDate>Sun, 01 Feb 2026 19:01:51 +0800</pubDate><description><![CDATA[摘要： 本文详细介绍了STC8G1K08单片机PWM功能的配置方法。使用PCA0模块映射到P1.1引脚，选择定时器0溢出脉冲作为计数源，实现频率和占空比可调的10位PWM输出。文章给出了PWM频率和占空比的计算公式，频率计算基于系统时钟和定时器重载值，占空比由比较值寄存器控制。提供了初始化代码和PWM驱动函数，包括启动/停止PWM、设置频率和占空比等功能，适用于蜂鸣器等需要可变频率驱动的应用场景。]]></description><category></category></item><item><title><![CDATA[STM32单片机PWM驱动无源蜂鸣器模块C语言程序]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/144251220</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/144251220</guid><author>wanglong3713</author><pubDate>Fri, 24 Oct 2025 21:32:27 +0800</pubDate><description><![CDATA[本文介绍了使用STM32F103C8T6单片机通过PWM驱动无源蜂鸣器的方法。主要内容包括：1)硬件介绍，展示了无源蜂鸣器的外形和原理图；2)PWM配置，使用STM32CubeMX设置频率(默认4000Hz)和占空比(50%)；3)程序设计，封装了蜂鸣器控制结构体，实现了初始化、启动/停止、声音设置等功能；4)使用示例，通过调用Buzzer_SoundSet()函数可实现自定义蜂鸣模式，如&quot;嘀嘀嘀&quot;三声。文章提供了完整的Keil MDK工程下载链接，方便开发者参考使用。]]></description><category></category></item><item><title><![CDATA[STM32单片机独立看门狗IWDG使用CubeMX配置方法]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/139218407</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/139218407</guid><author>wanglong3713</author><pubDate>Wed, 11 Jun 2025 21:35:56 +0800</pubDate><description><![CDATA[在嵌入式系统设计中，看门狗是一个可靠性保障机制，它能够在系统因软件故障等原因陷入异常状态时，自动触发复位操作，使系统恢复到正常工作状态。STM32的IWDG 是一个独立的看门狗，它的时钟源是 STM32 内部的低速 RC 振荡器（LSI），频率通常为 40 kHz 左右；]]></description><category></category></item><item><title><![CDATA[51单片机STC8G串口Uart配置]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/139722410</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/139722410</guid><author>wanglong3713</author><pubDate>Thu, 24 Oct 2024 20:52:06 +0800</pubDate><description><![CDATA[单片机型号：STC8G1K08-38I-TSSOP20，其他型号请自行测试；]]></description><category></category></item><item><title><![CDATA[51单片机看门狗定时器配置]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/139567066</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/139567066</guid><author>wanglong3713</author><pubDate>Thu, 27 Jun 2024 22:27:53 +0800</pubDate><description><![CDATA[单片机型号：STC8G1K08-38I-TSSOP20，其他型号请自行测试；]]></description><category></category></item><item><title><![CDATA[51单片机定时器中断配置]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/139566813</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/139566813</guid><author>wanglong3713</author><pubDate>Sat, 22 Jun 2024 20:19:47 +0800</pubDate><description><![CDATA[单片机型号：STC8G1K08-38I-TSSOP20，其他型号请自行测试；]]></description><category></category></item><item><title><![CDATA[瑞萨RL78/G13单片机R5F100FE内部RTC驱动程序]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/135875590</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/135875590</guid><author>wanglong3713</author><pubDate>Thu, 16 May 2024 20:04:02 +0800</pubDate><description><![CDATA[使用单片机为R5F100FE，IDE为CS+ for CA,CX V4.00.00，编译工具为CA78K0R。瑞萨RL78/G13系列芯片没有外接电池的引脚，没有后备寄存器，因此在系统断电后无法保存时间；如果要实现断电后RTC继续计时，必须通过其他方式给系统切换供电，否则上电会将RTC时间也初始化；因此，该系列芯片的RTC功能用来做实时时钟的话，功能不全，但用来做中断，唤醒STOP模式，会比较好用。]]></description><category></category></item><item><title><![CDATA[字节按位前后反转C语言程序]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/137383915</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/137383915</guid><author>wanglong3713</author><pubDate>Fri, 05 Apr 2024 11:19:35 +0800</pubDate><description><![CDATA[一个字节可表示的数据只有256种，如果将0x00~0xFF按位反转的值做成表格，使用查表法，则效率更高了。uint16_t i;for (i = 0;i < 0x0100;i++)]]></description><category></category></item><item><title><![CDATA[实时时钟芯片DS1307单片机C语言驱动程序]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/133964231</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/133964231</guid><author>wanglong3713</author><pubDate>Thu, 01 Feb 2024 21:33:09 +0800</pubDate><description><![CDATA[DS1307是一款非易失性实时时钟（RTC）芯片，采用IIC总线接口进行通信，可以提供秒、分、时、日、月、年等时间和日期信息。DS1307还具有控制和配置寄存器，可以通过读写这些寄存器来设置和调整时间、日期和其他功能。主要特点如下：1.提供秒、分钟、小时、日、月、星期及年计时，带闰年补偿，有效期至2100年；2.56字节通用RAM，写次数不受限制；3. IIC串口通信；4. 可编程方波输出信号；5. 自动电源失效检测和切换电路；6. 电池备份模式下，振荡器运行功耗低于500nA；]]></description><category></category></item><item><title><![CDATA[实时时钟芯片DS1302单片机C语言驱动程序]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/121327006</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/121327006</guid><author>wanglong3713</author><pubDate>Sun, 14 Jan 2024 10:23:17 +0800</pubDate><description><![CDATA[DS1302 是 DALLAS（达拉斯）公司推出的一款涓流充电时钟芯片。主要特点：1.可计算秒、分、时、日、日期、星期、月、年的能力，并有闰年补偿功能；2.内部含有31个字节静态RAM；3.采用串行数据传送方式，3线接口；4.与TTL兼容，Vcc=5V；5.时钟或RAM数据的读/写有两种传送方式：单字节传送和多字节传送方式；6.工作电压范围宽：2.0～5.5V；7.功耗低，2.0V时工作电流小于300nA。8.采用8脚DIP封装或SOIC封装。]]></description><category></category></item><item><title><![CDATA[单片机RTC及时钟芯片的时间到底从哪一年起始？]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/129866608</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/129866608</guid><author>wanglong3713</author><pubDate>Mon, 01 Jan 2024 23:30:30 +0800</pubDate><description><![CDATA[1.文中用到的设备，初始年份大多为00年，即四位年份yyyy格式的后两位，且当作闰年处理，如果是指1970年的话，1970年不是闰年；无论是单片机还是RTC专用芯片，没有一个手册中提到1970年1月1日这个时间，因此，说RTC功能的起始时间是1970-01-01 00:00:00的，不准确，也没有依据；2.对于类似STM32F103C8T6这样，RTC功能只有一个计数器，没有年月日时分秒这种时间寄存器的，需要由软件算法配合来计时，起始时间可以任意；3。]]></description><category></category></item><item><title><![CDATA[BCD码与十进制数转换C语言程序]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/135178415</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/135178415</guid><author>wanglong3713</author><pubDate>Tue, 26 Dec 2023 20:27:20 +0800</pubDate><description><![CDATA[BCD码（Binary-Coded Decimal‎），也称为二-十进制代码，是一种将十进制数转换为二进制数的编码方式，用4位二进制数来表示1位十进制数中的0~9这10个数码。BCD码使用四个位Bit来储存一个十进制的数码，使二进制和十进制之间的转换转换变得非常快捷和简单。]]></description><category></category></item><item><title><![CDATA[STM32单片机输出频率及占空比可调的PWM波]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/134938244</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/134938244</guid><author>wanglong3713</author><pubDate>Sat, 16 Dec 2023 21:57:07 +0800</pubDate><description><![CDATA[1.使用定时器的PWM输出模式，同一个定时器的不同通道输出的PWM频率必须相同，如果想要同时输出不同频率的PWM，则需要使用不同的定时器，或者使用同一个定时器的输出比较模式。2.PWM模式下，同一个定时器的不同通道，输出的PWM占空比可以不一样。]]></description><category></category></item><item><title><![CDATA[C语言求数组中出现次数最多的元素]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/134340315</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/134340315</guid><author>wanglong3713</author><pubDate>Mon, 13 Nov 2023 19:58:55 +0800</pubDate><description><![CDATA[1、程序不考虑时间和空间复杂度，并不一定是最优的算法，只是流程简单，易于理解；2、该方法利用了数组的下标当作与元素对应的值，因此只适用于数组元素为非负整数的情况；3、输入数组的长度任意，新建的数组为变长数组，所以要用C99的标准；4、新建的数组下标当作元素的值，实际相当于给输入数组进行了排序，所以找到第1个最大值，跳出循环，如果有出现次数相同的元素，则返回较小元素；]]></description><category></category></item><item><title><![CDATA[用逻辑分析仪观察串口Uart数据波形]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/133722223</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/133722223</guid><author>wanglong3713</author><pubDate>Thu, 02 Nov 2023 21:08:40 +0800</pubDate><description><![CDATA[只讨论嵌入式编程中较为常用的异步串行接口（Universal Asynchronous Receiver/Transmitter， UART），TTL电平。串口的参数一般有：1.，数据传输速率，单位bps（bits per second），即每秒传输的位数，常见的波特率有9600bps、19200bps、115200bps等；如果波特率为115200bps，则传输一个bit的时间是1/115200s≈8.68us；2.]]></description><category></category></item><item><title><![CDATA[STM32F103单片机内部RTC实时时钟驱动程序]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/134021155</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/134021155</guid><author>wanglong3713</author><pubDate>Tue, 24 Oct 2023 20:38:20 +0800</pubDate><description><![CDATA[STM32F103系列的RTC模块，没有年月日及时间寄存器，只有一个32位计数器，每1秒加1，没有年月日及时间寄存器，需要软件配合，才能实现日历、时钟功能；由于只有计数功能，可以任意时间作为基准时间（即开始时间），用UTC时间戳（以1970年1月1日00:00:00为开始时间），可以使程序通用性更强；以上UTCToUnix和UnixToUTC两个函数是以标准UTC时间为基础的，实际北京时间为UTC+8，相差8个小时，如果需要计算北京时间，需要加8个小时；水平有限，以上如有疏漏之处，欢迎指正。]]></description><category></category></item><item><title><![CDATA[51单片机STC8G使用printf函数的方法]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/128730487</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/128730487</guid><author>wanglong3713</author><pubDate>Sat, 11 Mar 2023 19:50:12 +0800</pubDate><description><![CDATA[原来是因为Keil C51的printf函数与标准C语言的printf函数不同，可在keil的菜单“Help-μVision Help”的帮助文件中查看关于printf函数的介绍，在使用C51的printf函数打印%d/i/u/o/x/X格式时的数值时，需要指定该变量的存储格式l/L/b/B。测试程序，主频为为22.1184MHz，串口1配置为9600bps，打印“Hello World!可看出输出的并不是我们想要的数值0，1，2…，而是放大了256倍，②16位数据，格式为%hd；，其他型号请自行测试；]]></description><category></category></item><item><title><![CDATA[STM32单片机Keil MDK重定向printf函数]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/129188860</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/129188860</guid><author>wanglong3713</author><pubDate>Thu, 23 Feb 2023 21:22:23 +0800</pubDate><description><![CDATA[在项目开发中，使用printf函数通过串口打印调试信息，需要对printf函数进行改写，重定向到使用的串口号，该例中使用单片机STM32F103C8T6进行试验，工程文件使用STM32CubeMX生成，开发环境是Keil MDK，使用了HAL库。IAR环境下重定向printf函数可参考。]]></description><category></category></item><item><title><![CDATA[PID算法C语言程序STM32单片机控制水温实验（二、积分项改进）]]></title><link>https://blog.youkuaiyun.com/wanglong3713/article/details/127472943</link><guid>https://blog.youkuaiyun.com/wanglong3713/article/details/127472943</guid><author>wanglong3713</author><pubDate>Mon, 24 Oct 2022 20:19:00 +0800</pubDate><description><![CDATA[该水温控制系统，传统PID与改进PID效果差不多，可能是因为该系统过于简单；另外P、I、D参数选取未经过大量实验，可能不是最优的，本例中的积分I参数非常小，所以积分项的改进效果不明显，但目的在于总结积分项的改进方法与C语言实现。有兴趣的可以试验整定参数，达到更好的效果。如有错漏之处，欢迎指正。]]></description><category></category></item></channel></rss>