<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CasingHead的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/CasingHead</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CasingHead]]></copyright><item><title><![CDATA[KEIL5.43a之后,debug无法查看 外设寄存器的解决方法]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/160594892</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/160594892</guid><author>CasingHead</author><pubDate>Tue, 28 Apr 2026 15:48:36 +0800</pubDate><description><![CDATA[debug时，systemViewer下为空白。根源是由于keil不再提供sfr文件导致。因此解决方法是通过UV4中的SVD转换工具，将芯片包里的svd文件转换为sfr文件即可。3.cmd切换盘符只需输入D: 即可，但进入该盘符下的文件夹，需要cd 且不加盘符。就可以看到在文件夹中生成的sfr文件了， 然后粘贴进package包中即可。2.windonws下的cmd需要管理员模式，1.转换工具只能在cmd下运行。]]></description><category></category></item><item><title><![CDATA[使用移位的方法做除法计算]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/147093343</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/147093343</guid><author>CasingHead</author><pubDate>Wed, 09 Apr 2025 14:42:15 +0800</pubDate><description><![CDATA[在进行AD采集计算的时候, 会需要使用采集到的AD值, 除以满量程的AD值, 再乘以基准电压的方法来计算采集到的电压值.同理,  (adVal *3300)>>8 等价于  (adVal *3300)/256。二进制右移12位,即等于舍去小数点的除以2的12次方。原理: 二进制右移几位,就等于除以了2的几次方.]]></description><category></category></item><item><title><![CDATA[STM32异常跳转Hardfault时，导致事故的问题追踪排查]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/146200826</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/146200826</guid><author>CasingHead</author><pubDate>Wed, 12 Mar 2025 11:48:19 +0800</pubDate><description><![CDATA[STM32 出现hardFault后的问题排查例程]]></description><category></category></item><item><title><![CDATA[通过指针结构体赋值踩坑记录]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/145769699</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/145769699</guid><author>CasingHead</author><pubDate>Fri, 21 Feb 2025 09:50:20 +0800</pubDate><description><![CDATA[结构体通过指针赋值踩坑记录]]></description><category></category></item><item><title><![CDATA[CubeMX 配置LWIP 使用中断的方法（2023.10.11）]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/133771699</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/133771699</guid><author>CasingHead</author><pubDate>Wed, 11 Oct 2023 16:52:33 +0800</pubDate><description><![CDATA[cubeMX配置ETH中断接收的方法。最近cubemx已经不能再在配置界面中通过RX.MODE来选择接收的方式， 因此需要来修改LWIP内核源码来实现， 方法如下：]]></description><category></category></item><item><title><![CDATA[STM32 HAL 库 串口 函数HAL_UART_Transmit的BUG问题 及解决方法]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/130989119</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/130989119</guid><author>CasingHead</author><pubDate>Thu, 01 Jun 2023 15:38:51 +0800</pubDate><description><![CDATA[发现STM32HAL库的串口函数，在处理海量数据的时候， 存在bug， 导致不能将指定数量的数据全部发送出去， 在发送几千个数据包后， 会出现单个数据包发送不完整的情况（200个字节一个包， 实际上可能只发送了60个字节出去，就没有任何征兆的提前结束了，并开始发送下个数据包）。因此， 在需要使用串口发送大量数据的时候， 建议不要使用HAL库的函数， 而是直接对寄存器操作。]]></description><category></category></item><item><title><![CDATA[笔记： C语言中的骚操作 (带参宏定义及三目运算实例)]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/129399387</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/129399387</guid><author>CasingHead</author><pubDate>Wed, 08 Mar 2023 11:16:20 +0800</pubDate><description><![CDATA[带参宏定义及三目运算实例 ]]></description><category></category></item><item><title><![CDATA[再谈51单片机的printf串口输出问题]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/128762525</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/128762525</guid><author>CasingHead</author><pubDate>Wed, 25 Jan 2023 21:04:23 +0800</pubDate><description><![CDATA[继前段时间利用串口重定向实现printf的串口输出后，就发现在实际使用过程中，总是会出现一些奇奇怪怪的问题。有的时候还和定时器冲突，总得来的说，51的性能不适合用C语言标准库的printf，除非自己写个printf 只用需要的功能， 把其他的都去掉。]]></description><category></category></item><item><title><![CDATA[STM32开发中printf利用重定向方法输出到串口（CubeMX 基于HAL库方法，带实际项目应用技巧 巧用goto语句）]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/128708099</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/128708099</guid><author>CasingHead</author><pubDate>Mon, 16 Jan 2023 22:43:59 +0800</pubDate><description><![CDATA[在main函数中使用goto语句跳过初始化， （其实也不是跳过初始化， 而是跳过系统自动生成的部分，使用用户代码部分中的初始化， 来避免更改配置后被重置的一些问题。在stdio.h中的printf 原本输出到控制台， 在单片机应用中一般将其改到串口， 并利用串口输出信息来调试程序，非常方便。在生成的代码中，我们可以看到，基本外设的初始化等基础函数及框架都已经由CubeMX自己生成完毕，并能够直接使用了。根据串口的情况， 配置波特率，数据长度，停止位，及校验位，如下图绿框。在系统内核中，配置系统时钟。]]></description><category></category></item><item><title><![CDATA[STM32 的时钟树配置 CubeMX]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/128665950</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/128665950</guid><author>CasingHead</author><pubDate>Thu, 12 Jan 2023 22:32:03 +0800</pubDate><description><![CDATA[CUBEMX 配置时钟]]></description><category></category></item><item><title><![CDATA[51单片机的堆栈操作]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/128653044</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/128653044</guid><author>CasingHead</author><pubDate>Thu, 12 Jan 2023 01:49:23 +0800</pubDate><description><![CDATA[堆栈]]></description><category></category></item><item><title><![CDATA[关于轮询，中断和DMA]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/128637044</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/128637044</guid><author>CasingHead</author><pubDate>Tue, 10 Jan 2023 22:06:46 +0800</pubDate><description><![CDATA[轮询就是每隔一段时间查看下是否需要执行某种任务， 例如while中做个if判断。DMA是指直接对存储进行写入操作， 不需要经过CPU。51， 主要用的是轮询和中断。轮询，中断和DMA是Hal库的三种编程模型。]]></description><category></category></item><item><title><![CDATA[51单片机实现printf调试（带完整UART代码详解）]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/128623235</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/128623235</guid><author>CasingHead</author><pubDate>Tue, 10 Jan 2023 02:58:29 +0800</pubDate><description><![CDATA[51单片机 printf到串口调试]]></description><category></category></item><item><title><![CDATA[使用CubeMX配置基本定时器TIM6（带计算方法 基于Cortex M4内核）]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/128564048</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/128564048</guid><author>CasingHead</author><pubDate>Thu, 05 Jan 2023 16:04:16 +0800</pubDate><description><![CDATA[HAL库 TIM基本定时器 中断]]></description><category></category></item><item><title><![CDATA[基于ARM CortexM4内核的STM32寄存器记忆性]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/127112907</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/127112907</guid><author>CasingHead</author><pubDate>Thu, 29 Sep 2022 20:44:01 +0800</pubDate><description><![CDATA[避免重复配置ARM的寄存器]]></description><category></category></item><item><title><![CDATA[使用51单片机编写计时器（分钟，秒钟分离版）]]></title><link>https://blog.youkuaiyun.com/CasingHead/article/details/124330805</link><guid>https://blog.youkuaiyun.com/CasingHead/article/details/124330805</guid><author>CasingHead</author><pubDate>Thu, 21 Apr 2022 20:31:12 +0800</pubDate><description><![CDATA[针对网络上大部分例程序只有倒计时秒 ， 无法一眼看出还剩多少时间，因此做考试计时器不具备实用性。

因此，编写一个 分钟，秒钟分离的版本，方便考生的时间控制。


/*==================================================================
编写时间：                      2022.04.21
设计目标：
四位共阴极数码管， 前两位为分钟后两位为秒钟。
设定时间为90分钟，开机后开始倒计时。

硬件电路设计：
数码管使用4个N]]></description><category></category></item></channel></rss>