自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 keil5环境部分文件中文乱码解决方案

一、问题回顾同一个工程,有一些文件中文如下乱码:而有一些文件中文显示正常如下:二、问题分析对于中文显示乱码的问题网上能搜索到一堆讨论,但是解决方案一句话概括就是在keil5环境的设置里修改字体编码格式为Chinese GB2312。显然上述的问题情况用网上普遍的解决方案肯定不行,因为在keil5设置好编码格式后工程内所有文件的字体编码格式都一样,也就是说编码格式不对的话肯定是全部中文乱码。所以猜测:工程里的代码文件用的字体编码格式不统一,导致一部分文件能适配keil5的字体编码而

2020-10-24 22:09:36 21305 8

原创 基于STM32F030的程序跳转后跑飞问题以及IAP配置细节

程序跳转后跑飞 关键问题描述:(只想看IAP细节配置的可以往下拉,前面的问题分析跳过)IAP远程更新程序配置无误,且程序能程序跳转。但跳转后程序总是在固定的程序段跑飞重启设备。尝试过的办法:1、怀疑中断向量表重映射地址不对应,由于M0内核的特殊性,是把中断向量复制到RAM上,就各种方案尝试分配RAM区。结果如下图:RAM1必须是0x200000B4开头,因为stm32f030的中断向量表只有45个中断向量,每个向量地址是32位的即4个字节,45*4=0xB4,因此RAM必须留出0

2020-09-06 15:01:54 2898 2

原创 架构与指令集

架构与指令集的认识指令:执行一个动作架构与指令集:为了兼容不同CPU的一套规范化、系统化的指令(使人对一个“动作”有规则地去写对应的指令)微架构:针对每款CPU做的,是在具体型号的CPU对指令集的具体实现。即指令集可以供多款CPU使用,但使用指令集时需要微架构去驱动、具体实现,也就是说不同CPU用的指令集可能相同但微架构肯定不一样。举例,interl处理器(CPU)用的大多数是X86架构,但是每个处理器的微架构都不一样架构与指令集的分类两大类:CISC(复杂指令集)、RISC(精简指令集

2020-08-13 15:49:36 2023

原创 C++的几种编译和链接形式

UNIX编译和链接编译文件task.C使用命令:CC task.C(此时处理的就是所谓的源代码) 编译成功后会生成一个扩展名为o即task.o文件将会生成(此时生成的就是目标代码) 编译器自动把目标代码task.o传递到链接程序,即与库代码结合起来生产一个可执行文件,该文件名默认为a.out 此时目标代码已经不需要,会被删除。执行文件时输入文件名a.out即可。 修改后编译或者编译其他目...

2020-01-23 22:13:25 543

原创 FreeRTOS任务切换总结

1处理时间被划分多个片段,到达一定时间就会触发系统滴答定时器(SysTick)中断进行上下文切换,但由于SysTick中断是最高级的,会使其他事件中断延时。故每到SysTick中断是让PendSV中断挂起,由于PendSV优先级最低,只有所有中断都执行完毕了才会执行PendSV中断,在此进行任务切换。2区系统滴答定时器(SysTick)中断与执行系统调用的两种任务切换途径,相同点是,本质最...

2020-01-19 00:03:44 1330

原创 FreeRTOS任务管理名词解释

1多任务系统:FreeRTOS就是一个多任务处理的操作系统,无操作系统的是单任务系统(即功能实现都在一个大while循环里)。2任务调度器:多任务系统的核心,即把一个大循环while里的(或者说是一个大任务)分成若干个小任务,而什么时间执行什么任务的控制操作就是任务调度器3任务与协程:单核系统(单片机是单核)任意时刻最多同时执行一个任务,打断执行其他任务回来原来的任务时需要从任务堆栈中得知...

2020-01-17 21:08:31 397

原创 FreeRTOS任务管理各过程算法总结

1开启任务调度器:在此函数包括创建空闲任务(优先级最低),创建定时器服务任务(软件定时器,该步骤是条件编译可以用宏关闭)。然后会先关闭中断,在SVC中断服务函数中再重新打开。配置时间统计功能的定时器(条件编译,一般调试时才会用)。还包括其他硬件的初始化如滴答定时器、FPU单元、PendSV中断等等(这些有相关函数去调用实现或是寄存器直接配置)。2空闲任务的意义:保证系统任何时刻都有一个任务进行...

2020-01-17 21:06:47 440

原创 FreeRTOS中断基本核心知识

最多有8位配置中断优先级(理论上每个中断都有这样的一个优先级寄存器配置)。最高有256个优先级128个抢占优先级,但为了节省设计与结构一般不会8位全用上。根据不同厂家的不同芯片用来配置中断优先级的位数会不同。 因此会有优先级分组,即分两组,x位作为抢占优先级y位做次优先级方便管理优先级(x、y根据优先级分组确定)。Stm32由4个相邻的中断配置并成在一个32位寄存器里。 FreeRTOS不能管...

2020-01-15 17:05:42 275

原创 总结STM32系列GPIO各输出输入模式

一、习惯性称谓解析1复用输出模式:即引脚作为单片机某外设(如CAN等,ADC/DAC除外)的输入或输出,引脚电平信号与其关联的外设相关。即引脚电信号非寄存器直接影响的模式(ADC/DAC除外)。2模拟输入/输出:电平(模拟)信号与ADC/DAC直接相关的模式,即使用ADC/DAC时候。3开漏输出:引脚电平不完全由片内外设或输出数据寄存器决定,一些情况下还需由引脚上下拉电阻决定。4推...

2020-01-14 15:28:20 921

原创 ST-link下载程序SWD配置步骤

以下解释以stm32f4为例子1、ST-link驱动确认下载好,打开电脑设备管理器如下情况表示驱动成功安装2、确认硬件接线无误,可以参考别人的博客https://blog.csdn.net/qq_26093511/article/details/59484249(SWD方式本人亲自验证无误)。但注意:这段话我需要更正一下第一脚的VDD可能板子不同设计者通常会第1脚第2脚混淆(要自己...

2020-01-14 01:47:54 5093

原创 Free RTOS系统配置——按功能分类

系统功能简介:系统功能部分的宏配置是FreeRTOS系统运行的基本要求,是必须要检查、配置的宏·CPU相关(4)设置CPU频率configCPU_CLOCK_HZ在FreeRTOSConfig.h文件定义根据CPU频率定义(8)同优先级的CPU使用权configIDLE_SHOULD_YIELD在FreeRTOS.h文件定义定义为 1:同优先级空闲任务让出CPU...

2019-09-17 22:13:33 555

原创 CAN通信单片机编程——最快入手方法

为了您的学习更有效率,别再做无头苍蝇,虽然没有捷径但有前人的学习经验可以借鉴如果您使用的单片机不带CAN总线,那么本篇文章对您不适用(编程环境是Keil5)使用stm32系列单片机开发CAN的朋友们和以下内容契合度更高第一步:简单的了解CAN(如果在真正初次使用CAN前就把它很深入地剖解,那你是真的闲。建议编程的时候才深剖)①CAN是一种通信协议(举例485,422,232,I...

2019-08-02 20:29:30 10170

原创 单片机编程实用的函数封装方法原理——新手强化编程思路

大前提:C语言基础扎实且熟悉单片机编程(或者会自己查资料解决基础问题)小前提:该功能较为复杂不封装函数难以促成简洁的代码第一步:寻找自己要实现的功能的所有子功能的介绍及实现办法举个例子:当我们目标功能是A,查该功能的资料得知在这款单片机(模块)要实现这个功能需要同时实现功能B和C,然而还得知做B功能前要先实现C功能。接着说我们去看这两个功能怎么实现,又发...

2019-07-31 22:39:52 2649

原创 W25Q128的SPI通信原理及编程举例——通俗讲解

一、原理方块图正规电子原理解说①根据方块图了解主机、从机的spi的硬件内外配置及其相关功能如果是单片机上的spi则会有很多相关寄存器配置spi通信的模式或读取spi通信状态,这个需要根据不同单片机型号去查这单片机数据手册然后写对应程序最终初始化好spi,或者功能运作过程中有需要可读取通信状态。举个例子就是下面这个单片机上对于spi通信记录其状态的...

2019-07-31 15:34:22 9498 1

原创 各内存大小的EEPROM的IIC通信原理

1、引脚图知识点一:A0A1A2是硬件控制该设备地址知识点二:WP读写保护位,SCL时钟信号(可模拟),SDA数据信号(可模拟)2、EEPROM时序图知识点一:时序就是一种mcu与硬件之间的通信协议决定的拥有变化占空比的模拟信号(简单的说就是用高低电平变化来表达他们之间的通信方式或者通俗的说就是他们自己的“方言”交流)。时序的读写步骤看下面两个图,看得懂英文就懂了。(ACK是应...

2019-07-29 15:11:42 3568 2

原创 合泰芯片HT66F2390的uart发送/接收字符串函数封装与说明

首先用到uart口肯定要操作相应的寄存器初始化对应要使用的uart。这里重点不讲这个,初始化见最底下的示例。下面介绍收发函数封装。(一些变量可能是全局变量,请自行在函数外定义)一、发送字符函数函数原型:void send_char(char s)参数说明:s是需要发送的字符数据,类型是字符类型,大小=8bit功能:发送一个字符类型数据到uart的数据缓冲器(txrrxrn...

2019-05-24 16:22:50 5630 8

原创 51单片机温湿度液晶屏显示代码(DHT11与lcd)

/***************************************/该代码使用的硬件有DHT11温湿度传感器、lcd1602,at89c52单片机,外加按键电位器等器件,具体电路图没有给出,但应该问题不大,电路按照各模块的数据手册要求的来就行,很简单(lcd接线两种方式,和我的不同的话,代码略有不同,自己琢磨)。此外改代码没有写报警功能,只写显示功能。虽然运行成功过,但是我只...

2019-05-24 14:00:13 7717

原创 如何匹配android studio开发环境版本

刚刚接手一个安卓APP项目,首先肯定是要匹配好开放环境。长话短说,主要有下面三个点一、SDK版本匹配1、首先按下图步骤打开其他设置2、然后确定你SDK及JDK的提供地址(就是安装android studio当时你配置的目录)3、打开上面目录SDK文件,找到SDK Manager并打开,下载你需要的SDK版本注意:每选择一个版本,要连同Tools、Platform...

2018-11-07 19:55:40 2179 1

原创 关于Git使用GitHub 的远程库

1、首先得有一个GitHub账号2、然后在设置(setting)里面设置好ssh公钥(这个是在GitHub里面系统打开文件的钥匙,一个公钥对应你自己的一个Git管理库——Git库一个人可以有无数个,只要你邮箱有无数个,当然在GitHub里面设置ssh也能设置多个公钥,就看你想在电脑端打开哪个git库)。公钥私钥获取,在Git命令里面写(下面“”里面是自己邮箱):$ ssh-keygen ...

2018-10-23 23:18:34 228

原创 Git与GitHub深入学习建议

基础学习我之前有写博客笔记以防自己忘记(操作注意事项我会在以后遇到时随时补充笔记),希望大家基础学习多多写笔记,记忆更牢固而且以后方便查阅。其次,对于深入用法和操作建议https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374385852170d9c7adf13c30429...

2018-10-23 14:05:44 180

原创 git add和git commit的理解(Git的工作区和暂存期)

用过Git都知道,add是添加文件,commit是提交文件。两者有什么区别为啥不和并一起作为一个步骤呢?其实git add是Git库的工作区的最后一步,使用之后就把修改的文件放入暂存期,而git commit是在暂存区的最后一步,使用后修改的文件就直接被Git录入历史。至于工作区暂存区的解释及其的意义。我打个比方,学生写作业,作业就是处于工作区,作业很多,已经做完的作业积累在一起放到一个特...

2018-10-18 20:32:13 2277 1

原创 使用Git——常用命令集合

1、git config命令,用于指定操作对象。例:2、cd命令指定当前操作范围,pwd命令让Git告诉自己当前正在操作的哪个目录下的文件。例:3、git add命令+git commit命令,提交修改文件到Git库,让Git管理。首次创建的文件必须这样做才会把修改记录录入Git管理库,如果非首次使用则作为阶段性存档(这个命令的使用说明见我的另外一个博客的最后两点内容https:/...

2018-10-18 18:03:41 204

原创 Git-Windows64位,新手实用操作注意事项

1、重新打开Git操作以前的文件和之前创建库一样,先用git config命令指定你要操作的库(这个库里面有属于你自己需要操控的文件),就是你退出微信后要重新登录一样的道理。如果你有想看哪个微信的消息就登录哪个,输入用户名和密码。Git里面想操作哪个库也一样,要对应输入用户名(就是name)和邮箱(email)2、重新在Git管理库添加文件/文档在“Git”目录里新添加文件/文档后,想...

2018-10-17 22:47:53 405

原创 Git学习之一——Git创建版本库

前言:如果不知道Git是具体用来干嘛的,还请先了解或者复习一下Git的介绍和由来。(否则下面内容你可能迷惑比较多)一、安装和使用Git时初始化在https://git-scm.com/downloads这里下载Git并安装后,在开始菜单里找到“Git”->“Git Bash”,然后输入上面的命令指定自己的名字和邮箱时,注意“git config”是个命令,后面空格后才能输入“--...

2018-10-17 11:35:12 5015

原创 安卓学习(初)第三章(1)(《第一行代码》)

布局控件一、TextView1、<TextView>可以说是Android中最简单的一个控件,主要用于在界面上显示一段文本信息。2、指定控件的宽度和高度android:layout_width="match_parent"android:layout_height="wrap_content"Android中所有的控件都有这2种属性,可选三种值:match_pa...

2018-10-16 14:44:10 236

原创 安卓学习(初)第二章(4)(《第一行代码》)

一、活动的启动模式1、启动模式有四种,分别是standard,singleTop,singleTask,singleInstance。可以在注册活动中通<acivity>标签指定android:launchMode="... 模式  ..."属性来选择启动模式。2、standard是活动默认的启动模式(没有显示指定时就执行这个模式)。该模式下每启动一个新活动,它就会在返回栈中并...

2018-10-16 14:43:53 180

原创 安卓学习(初)第二章(2)(《第一行代码》)

一、用Intent启动活动1、Intent()函数需要两个参数,第一个参数要求提供一个启动活动的上下文,第二个参数是指定想要启动哪个目标活动2、示例: public void onClick(View v){ Intent intent=new Intent(FirstActivity.this,secondActivity.class); startActivity...

2018-10-16 14:43:34 251

原创 安卓学习(初)第二章(3)(《第一行代码》)

一、活动生存期1、Activity类中一共七个回调方法onCreate(),活动第一次创建的时候用的方法。在这个方法中要完成活动的初始化,如加载布局、绑定事件。——活动由无到有onStart(),这个方法在活动由不可见变为可见的时候调用。——活动开始运行onResume(),这个方法在活动准备好和用户进行交互的时候调用。因此,调用该方法时活动一定位于栈顶。——活动由静到动onP...

2018-10-16 14:43:12 213

原创 安卓学习(初)第二章(1)(《第一行代码》)

一、手动创建一个活动1、活动创建的文件目录在app/src/main/java/com.example.acctivitytes2、右击com.example.acctivitytest包——New→Activity→Empty Activity,这样就在com.example.acctivitytest目录下创建了一个活动3、接下来对活动属性设置。命名是必须的,此外,勾选Genera...

2018-10-16 14:42:52 289

原创 安卓学习(初)第一章(《第一行代码》)

一、创建第一个安卓项目步骤:1、在Android studio界面点击star a new Android studio project。然后在接下来的界面填入该项目的名称、公司域名以及项目代码的存放地址(如果没特殊要求一般选择默认)。2、再下一个界面指定Minimum SDK和选择开发可穿戴设备(不涉及科忽略)。3、接下来创建活动界面——选择一种模板。设置活动的名字和布局的命名。...

2018-10-16 14:42:37 231

原创 安卓学习(初)第三章(2)(《第一行代码》)

一、布局的线性布局<LinearLayout1、示例:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:...

2018-10-16 14:42:14 213

原创 安卓学习(初)第三章(3)(《第一行代码》)

一、创建自定义标题栏1、以线性布局编写代码。除了之前学过的设置控件对齐方式控件大小还有控件地址命名外,android:text设置控件文本内容,android:textColor设置控件底色,android:background设置背景,android:layout_marginLeft="5dp"等设置对应方向的偏移距离,android:textSize设置文本字体大小。2、为了不需要每...

2018-10-16 14:41:55 237

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除