<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Entronk_star的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Entronk_star</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Entronk_star]]></copyright><item><title><![CDATA[keil5环境部分文件中文乱码解决方案]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/109266671</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/109266671</guid><author>Entronk_star</author><pubDate>Sat, 24 Oct 2020 22:09:36 +0800</pubDate><description><![CDATA[一、问题回顾

同一个工程，有一些文件中文如下乱码：



而有一些文件中文显示正常如下：



二、问题分析

对于中文显示乱码的问题网上能搜索到一堆讨论，但是解决方案一句话概括就是在keil5环境的设置里修改字体编码格式为Chinese GB2312。显然上述的问题情况用网上普遍的解决方案肯定不行，因为在keil5设置好编码格式后工程内所有文件的字体编码格式都一样，也就是说编码格式不对的话肯定是全部中文乱码。

所以猜测：工程里的代码文件用的字体编码格式不统一，导致一部分文件能适配keil5的字体编码而]]></description><category></category></item><item><title><![CDATA[基于STM32F030的程序跳转后跑飞问题以及IAP配置细节]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/108430911</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/108430911</guid><author>Entronk_star</author><pubDate>Sun, 06 Sep 2020 15:01:54 +0800</pubDate><description><![CDATA[程序跳转后跑飞 关键问题描述：

（只想看IAP细节配置的可以往下拉，前面的问题分析跳过）

IAP远程更新程序配置无误，且程序能程序跳转。但跳转后程序总是在固定的程序段跑飞重启设备。

尝试过的办法：

1、怀疑中断向量表重映射地址不对应，由于M0内核的特殊性，是把中断向量复制到RAM上，就各种方案尝试分配RAM区。

结果如下图：



RAM1必须是0x200000B4开头，因为stm32f030的中断向量表只有45个中断向量，每个向量地址是32位的即4个字节，45*4=0xB4，因此RAM必须留出0]]></description><category></category></item><item><title><![CDATA[架构与指令集]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/107981560</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/107981560</guid><author>Entronk_star</author><pubDate>Thu, 13 Aug 2020 15:49:36 +0800</pubDate><description><![CDATA[架构与指令集的认识

指令：执行一个动作

架构与指令集：为了兼容不同CPU的一套规范化、系统化的指令（使人对一个“动作”有规则地去写对应的指令）

微架构：针对每款CPU做的，是在具体型号的CPU对指令集的具体实现。即指令集可以供多款CPU使用，但使用指令集时需要微架构去驱动、具体实现，也就是说不同CPU用的指令集可能相同但微架构肯定不一样。举例，interl处理器（CPU）用的大多数是X86架构，但是每个处理器的微架构都不一样

架构与指令集的分类

两大类：CISC（复杂指令集）、RISC（精简指令集]]></description><category></category></item><item><title><![CDATA[C++的几种编译和链接形式]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/104078243</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/104078243</guid><author>Entronk_star</author><pubDate>Thu, 23 Jan 2020 22:13:25 +0800</pubDate><description><![CDATA[UNIX编译和链接
编译文件task.C使用命令：CC task.C（此时处理的就是所谓的源代码）
	编译成功后会生成一个扩展名为o即task.o文件将会生成（此时生成的就是目标代码）
	编译器自动把目标代码task.o传递到链接程序，即与库代码结合起来生产一个可执行文件，该文件名默认为a.out
	此时目标代码已经不需要，会被删除。执行文件时输入文件名a.out即可。
	修改后编译或者编译其他目...]]></description><category></category></item><item><title><![CDATA[FreeRTOS任务切换总结]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/104035141</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/104035141</guid><author>Entronk_star</author><pubDate>Sun, 19 Jan 2020 00:03:44 +0800</pubDate><description><![CDATA[1处理时间被划分多个片段，到达一定时间就会触发系统滴答定时器（SysTick）中断进行上下文切换，但由于SysTick中断是最高级的，会使其他事件中断延时。故每到SysTick中断是让PendSV中断挂起，由于PendSV优先级最低，只有所有中断都执行完毕了才会执行PendSV中断，在此进行任务切换。

2区系统滴答定时器（SysTick）中断与执行系统调用的两种任务切换途径，相同点是，本质最...]]></description><category></category></item><item><title><![CDATA[FreeRTOS任务管理名词解释]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/104024833</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/104024833</guid><author>Entronk_star</author><pubDate>Fri, 17 Jan 2020 21:08:31 +0800</pubDate><description><![CDATA[1多任务系统：FreeRTOS就是一个多任务处理的操作系统，无操作系统的是单任务系统（即功能实现都在一个大while循环里）。

2任务调度器：多任务系统的核心，即把一个大循环while里的（或者说是一个大任务）分成若干个小任务，而什么时间执行什么任务的控制操作就是任务调度器

3任务与协程：单核系统（单片机是单核）任意时刻最多同时执行一个任务，打断执行其他任务回来原来的任务时需要从任务堆栈中得知...]]></description><category></category></item><item><title><![CDATA[FreeRTOS任务管理各过程算法总结]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/104024821</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/104024821</guid><author>Entronk_star</author><pubDate>Fri, 17 Jan 2020 21:06:47 +0800</pubDate><description><![CDATA[1开启任务调度器：在此函数包括创建空闲任务（优先级最低），创建定时器服务任务（软件定时器，该步骤是条件编译可以用宏关闭）。然后会先关闭中断，在SVC中断服务函数中再重新打开。配置时间统计功能的定时器（条件编译，一般调试时才会用）。还包括其他硬件的初始化如滴答定时器、FPU单元、PendSV中断等等（这些有相关函数去调用实现或是寄存器直接配置）。

2空闲任务的意义：保证系统任何时刻都有一个任务进行...]]></description><category></category></item><item><title><![CDATA[FreeRTOS中断基本核心知识]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/103992816</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/103992816</guid><author>Entronk_star</author><pubDate>Wed, 15 Jan 2020 17:05:42 +0800</pubDate><description><![CDATA[最多有8位配置中断优先级（理论上每个中断都有这样的一个优先级寄存器配置）。最高有256个优先级128个抢占优先级，但为了节省设计与结构一般不会8位全用上。根据不同厂家的不同芯片用来配置中断优先级的位数会不同。
	因此会有优先级分组，即分两组，x位作为抢占优先级y位做次优先级方便管理优先级（x、y根据优先级分组确定）。Stm32由4个相邻的中断配置并成在一个32位寄存器里。
	FreeRTOS不能管...]]></description><category></category></item><item><title><![CDATA[总结STM32系列GPIO各输出输入模式]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/103973969</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/103973969</guid><author>Entronk_star</author><pubDate>Tue, 14 Jan 2020 15:28:20 +0800</pubDate><description><![CDATA[一、习惯性称谓解析

1复用输出模式：即引脚作为单片机某外设（如CAN等，ADC/DAC除外）的输入或输出，引脚电平信号与其关联的外设相关。即引脚电信号非寄存器直接影响的模式（ADC/DAC除外）。

2模拟输入/输出：电平（模拟）信号与ADC/DAC直接相关的模式，即使用ADC/DAC时候。

3开漏输出：引脚电平不完全由片内外设或输出数据寄存器决定，一些情况下还需由引脚上下拉电阻决定。

4推...]]></description><category></category></item><item><title><![CDATA[ST-link下载程序SWD配置步骤]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/103966322</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/103966322</guid><author>Entronk_star</author><pubDate>Tue, 14 Jan 2020 01:47:54 +0800</pubDate><description><![CDATA[以下解释以stm32f4为例子

1、ST-link驱动确认下载好，打开电脑设备管理器如下情况表示驱动成功安装



2、确认硬件接线无误，可以参考别人的博客https://blog.youkuaiyun.com/qq_26093511/article/details/59484249（SWD方式本人亲自验证无误）。但注意：

这段话我需要更正一下第一脚的VDD可能板子不同设计者通常会第1脚第2脚混淆（要自己...]]></description><category></category></item><item><title><![CDATA[Free RTOS系统配置——按功能分类]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/100941950</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/100941950</guid><author>Entronk_star</author><pubDate>Tue, 17 Sep 2019 22:13:33 +0800</pubDate><description><![CDATA[系统功能

简介：系统功能部分的宏配置是FreeRTOS系统运行的基本要求，是必须要检查、配置的宏

·CPU相关

（4）设置CPU频率

configCPU_CLOCK_HZ在FreeRTOSConfig.h文件定义

根据CPU频率定义

（8）同优先级的CPU使用权

configIDLE_SHOULD_YIELD在FreeRTOS.h文件定义

定义为 1：同优先级空闲任务让出CPU...]]></description><category></category></item><item><title><![CDATA[CAN通信单片机编程——最快入手方法]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/98235757</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/98235757</guid><author>Entronk_star</author><pubDate>Fri, 02 Aug 2019 20:29:30 +0800</pubDate><description><![CDATA[为了您的学习更有效率，别再做无头苍蝇，虽然没有捷径但有前人的学习经验可以借鉴

如果您使用的单片机不带CAN总线，那么本篇文章对您不适用（编程环境是Keil5）

使用stm32系列单片机开发CAN的朋友们和以下内容契合度更高

第一步：简单的了解CAN

(如果在真正初次使用CAN前就把它很深入地剖解，那你是真的闲。建议编程的时候才深剖)

①CAN是一种通信协议（举例485,422,232，I...]]></description><category></category></item><item><title><![CDATA[单片机编程实用的函数封装方法原理——新手强化编程思路]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/97972967</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/97972967</guid><author>Entronk_star</author><pubDate>Wed, 31 Jul 2019 22:39:52 +0800</pubDate><description><![CDATA[大前提：C语言基础扎实且熟悉单片机编程(或者会自己查资料解决基础问题)

小前提：该功能较为复杂不封装函数难以促成简洁的代码



第一步：寻找自己要实现的功能的所有子功能的介绍及实现办法

举个例子：









当我们目标功能是A，查该功能的资料得知在这款单片机（模块）要实现这个功能需要同时实现功能B和C，然而还得知做B功能前要先实现C功能。接着说我们去看这两个功能怎么实现，又发...]]></description><category></category></item><item><title><![CDATA[W25Q128的SPI通信原理及编程举例——通俗讲解]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/97923834</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/97923834</guid><author>Entronk_star</author><pubDate>Wed, 31 Jul 2019 15:34:22 +0800</pubDate><description><![CDATA[一、原理方块图



正规电子原理解说

①根据方块图了解主机、从机的spi的硬件内外配置及其相关功能



如果是单片机上的spi则会有很多相关寄存器配置spi通信的模式或读取spi通信状态，这个需要根据不同单片机型号去查这单片机数据手册然后写对应程序最终初始化好spi，或者功能运作过程中有需要可读取通信状态。

举个例子就是下面这个单片机上对于spi通信记录其状态的...]]></description><category></category></item><item><title><![CDATA[各内存大小的EEPROM的IIC通信原理]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/97636668</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/97636668</guid><author>Entronk_star</author><pubDate>Mon, 29 Jul 2019 15:11:42 +0800</pubDate><description><![CDATA[1、引脚图



知识点一：A0A1A2是硬件控制该设备地址

知识点二：WP读写保护位，SCL时钟信号（可模拟），SDA数据信号（可模拟）

2、EEPROM时序图

知识点一：时序就是一种mcu与硬件之间的通信协议决定的拥有变化占空比的模拟信号（简单的说就是用高低电平变化来表达他们之间的通信方式或者通俗的说就是他们自己的“方言”交流）。时序的读写步骤看下面两个图，看得懂英文就懂了。（ACK是应...]]></description><category></category></item><item><title><![CDATA[合泰芯片HT66F2390的uart发送/接收字符串函数封装与说明]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/90515313</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/90515313</guid><author>Entronk_star</author><pubDate>Fri, 24 May 2019 16:22:50 +0800</pubDate><description><![CDATA[首先用到uart口肯定要操作相应的寄存器初始化对应要使用的uart。这里重点不讲这个，初始化见最底下的示例。

下面介绍收发函数封装。（一些变量可能是全局变量，请自行在函数外定义）

一、发送字符函数

函数原型：void send_char(char s)

参数说明：s是需要发送的字符数据，类型是字符类型，大小=8bit

功能：发送一个字符类型数据到uart的数据缓冲器（txrrxrn...]]></description><category></category></item><item><title><![CDATA[51单片机温湿度液晶屏显示代码（DHT11与lcd）]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/90514615</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/90514615</guid><author>Entronk_star</author><pubDate>Fri, 24 May 2019 14:00:13 +0800</pubDate><description><![CDATA[/***************************************/

该代码使用的硬件有DHT11温湿度传感器、lcd1602，at89c52单片机，外加按键电位器等器件，具体电路图没有给出，但应该问题不大，电路按照各模块的数据手册要求的来就行，很简单（lcd接线两种方式，和我的不同的话，代码略有不同，自己琢磨）。

此外改代码没有写报警功能，只写显示功能。虽然运行成功过，但是我只...]]></description><category></category></item><item><title><![CDATA[如何匹配android studio开发环境版本]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/83830047</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/83830047</guid><author>Entronk_star</author><pubDate>Wed, 07 Nov 2018 19:55:40 +0800</pubDate><description><![CDATA[刚刚接手一个安卓APP项目，首先肯定是要匹配好开放环境。长话短说，主要有下面三个点

一、SDK版本匹配

1、首先按下图步骤打开其他设置



2、然后确定你SDK及JDK的提供地址（就是安装android studio当时你配置的目录）



3、打开上面目录SDK文件，找到SDK Manager并打开，下载你需要的SDK版本





注意：每选择一个版本，要连同Tools、Platform...]]></description><category></category></item><item><title><![CDATA[关于Git使用GitHub 的远程库]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/83314847</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/83314847</guid><author>Entronk_star</author><pubDate>Tue, 23 Oct 2018 23:18:34 +0800</pubDate><description><![CDATA[1、首先得有一个GitHub账号

2、然后在设置（setting）里面设置好ssh公钥（这个是在GitHub里面系统打开文件的钥匙，一个公钥对应你自己的一个Git管理库——Git库一个人可以有无数个，只要你邮箱有无数个，当然在GitHub里面设置ssh也能设置多个公钥，就看你想在电脑端打开哪个git库）。公钥私钥获取，在Git命令里面写（下面“”里面是自己邮箱）：


$ ssh-keygen ...]]></description><category></category></item><item><title><![CDATA[Git与GitHub深入学习建议]]></title><link>https://blog.youkuaiyun.com/Entronk_star/article/details/83305875</link><guid>https://blog.youkuaiyun.com/Entronk_star/article/details/83305875</guid><author>Entronk_star</author><pubDate>Tue, 23 Oct 2018 14:05:44 +0800</pubDate><description><![CDATA[基础学习我之前有写博客笔记以防自己忘记（操作注意事项我会在以后遇到时随时补充笔记），希望大家基础学习多多写笔记，记忆更牢固而且以后方便查阅。

其次，对于深入用法和操作建议https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374385852170d9c7adf13c30429...]]></description><category></category></item></channel></rss>