自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cyang's blog

嵌入式入门/*到头发护理*/

  • 博客(132)
  • 资源 (7)
  • 论坛 (2)
  • 收藏
  • 关注

原创 Arduino 按键实验

一、功能实现按键控制LED亮灭。按下点亮,再次按下熄灭。二、原理图三、代码int ButtonState;int ButtonLastState;int ButtonCounter;void setup() { // put your setup code here, to run once: pinMode(13,OUTPUT); pinMode(11,INPUT_PULLUP);

2017-08-19 20:14:35 18089 1

原创 STM32 定时器实现红外遥控数据接收

一、原理1、红外发射协议红外通信的协议有很多种。这个实验使用的是NEC协议。这个协议的采用PWM的方法进行调制,利用脉冲宽度来表示0和1。NEC 遥控指令的数据格式为:同步码头、地址码、地址反码、控制码、控制反码。同步码由一个9ms的低电平和一个4.5ms的高电平组成,地址码、地址反码、控制码、控制反码均是 8 位数据格式。按照低位在前,高位在后的顺序发送。采用反码是为了增加传输的可靠性(可用于

2017-08-08 23:11:06 14623 7

原创 leetcode: power of three 三种解法

一、题目leetcode 上有这么一道题,power of three.题目如下: Given an integer, write a function to determine if it is a power of three.要求: Could you do it without using any loop / recursion?就是说给出一个数,判断该数是否是 3 的 n 次

2017-08-01 22:16:39 466

原创 STM32 BSRR BRR ODR 寄存器解析

一、用法经常会看到类似如下的宏定义语句,用于对已经初始化后的 IO 口输出高、低电平。#define SET_BL_HIGH() GPIOA->BSRR=GPIO_Pin_0 #define SET_BL_LOW() GPIOA->BRR=GPIO_Pin_0其作用类似于如下两个库函数,void GPIO_SetBits(GPIO_Typedef* GPI

2017-08-01 11:54:09 4092 3

转载 C语言变量声明加冒号的用法

原文链接:博客园 C语言变量声明加冒号的用法有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几 个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就

2017-06-30 12:12:24 1505

原创 utf-8 to unicode

一、utf-8 unicode utf-161、unicode 使用两字节表示字符。2、utf-8 和 utf-16均为变长编码,使用1~4个字节来表示字符。3、utf-8 和 utf-16是不一样的,汉子使用 unicode 表示是两个字节,utf-8 是三个字节,utf-16 是两个字节。4、utf-8 只是 unicode的一种实现方式,类似的方式还有 utf-16 和 utf-32。

2017-05-17 00:06:07 705

原创 WIN10版OneDrive不能登录,显示正在同步其他账户

一、错误现象前几天通过Win10系统的推送进行了小版本的更新,更新之后需要重写登陆OneDrive,但是登陆却出现错误,提示正在同步其他账户,根据系统的指示在设置中更改账号并不能解决。 二、解决方法1、控制面板卸载OndDrive不过一般在控制面板是找不到OneDrive的,因此需要先执行安装包安装程序。安装包的路劲为C:\Windows\SysWOW64 之后便可以在控制面板卸载程序中找到On

2017-05-14 10:44:07 13742

原创 WIN10 更新系统后,串口无法连接

一、问题1、WIN10 更新系统后,无法连接 ST 开发板上 USB 转串口,但可以正常的下载程序。 二、解决方法1、尝试更改 COM 口,例如从 COM3 转为 COM4。 2、尝试更新 ST-LINK 的固件版本,如下: 之后便可正常使用了:

2017-04-26 09:41:47 11263 3

原创 C语言 查找字符串子串 返回位置

主要的思路就是,不断的从母串 str1 中取出和子串长度相等的临时子串 temp_str,与子串 str2 进行比较。没有找到子串,返回 -1;成功找到子串,返回子串首字母在母串中的位置,该位置从 0 开始。#include <stdio.h>#include <string.h>char temp_str[30]; // 临时子串void ReadStrUnit(char * str,ch

2017-04-12 19:12:43 24715 3

原创 制作字库(Bin文件合并 C2BIN)

一、点阵文件生成1、使用点阵字库生成器生成文字的点阵信息,采用 UNICODE 编码批量生成。 2、如果具有 C 文件的字库,例如 STM32 开发板的库函数 x:\en.stm32cubef4\STM32Cube_FW_F4_V1.14.0\Utilities\Fonts 中的字库 C 文件,可以使用 C2B转换助手,这个软件可以将 C 文件中的字符数组信息转换成 bin 文件。结果如下图所示:

2017-04-06 20:04:01 6143

转载 字符串指针与字符数组的区别

本文转自 CSDN 博客http://blog.csdn.net/okliujieko/article/details/6821321, 代码部分略作修改,从C++ 转成 C;修改了原文中的错别字;增加部分内容用字符数组和字符指针变量都可实现字符串的存储和运算。但是两者是有区别的。在使用时应注意以下几个问题:1.字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放

2017-03-18 14:04:06 631

原创 Source Insight marco:MultiLineComment

一、使用场景Suorce Insight 中内置了一些实用的快捷键命令,可以在 Options->Key Assignments 中看到。另外,SI 还提供了用户自己添加功能的方法,就是 marco 指令。SI 内置了 13 种快键指令,例如:Marco: KillLine //删除整行Marco: PasteKillLine //粘贴刚刚删除的一行...只不过默认这些功能都是没有绑定

2017-03-16 18:38:01 1336

原创 I2C Bit-Bang 程序分析

一、Bit Bang关于 Bit Bang 的解释:Use software to control serial communication at general-purpose I/O pins,简单来讲就是使用软件通过 IO 脚去实现 I2C 的时序从而使用 I2C 协议进行通信。这样做的好处是可以突破硬件上的限制,例如芯片不具有硬件 I2C 模块,或者硬件 I2C 模块损坏,又或者使用硬件 I

2017-03-16 18:31:25 2901

原创 Source Insight 更新4.0版本

一、使用体验 source insight 终于大版本更新了。我开始使用 SI 是去年,那时候是 3.5 的版本,就觉得这是一款神器,搭配 Keil 和 IAR 等编译软件使用,可以提高单片机编程的效率。SI 有很多的特性是 keil 和 IAR 不具备的,作为一个代码编辑软件来说,很多功能确实很强大。只不过官方久久不更新,所以很多现在主流 IDE 或者代码编辑器的一些实用功能都不支持。这次更新,

2017-03-11 10:01:56 13468 4

原创 f_open()使用错误记录

一、现象调用函数 f_open() 后,程序崩溃,调试后发现,单片机产生硬件中断,即软件跳入如下部分:void HardFault_Handler(void){ /* Go to infinite loop when Hard Fault exception occurs */ while (1) { BSP_LED_Toggle(LED3); }}...

2017-03-10 18:48:23 4277 2

原创 STM32 SysTick定时器

一、说明SysTick 定时器是实时操作系统专用的,但是也可以作为一个标准的递减计数器使用。它具有以下特点:1、24位递减计数器(16777216)2、自动装填能力3、计数器达到 0 时,有可屏蔽的系统中断产生。4、可编程时钟源 (HCLK 或者 HCLK/8)该定时器具有四个寄存器,如下表所示:一般,该定时器的计数周期为一毫秒,则寄存器LOAD中的值根据 MCU 主频的不同而不同。例如,

2017-03-02 19:12:27 1352

原创 STM32 延时函数高级用法分析

一、使用场景第一种情况,在使用普通 STM32 延迟函数,类似于 HAL_Delay(time),由于该函数是使用循环去判断及延时的,所以在执行该函数时整个程序会在此处等待定时器的中断服务函数修改参量使得循环判决条件不成立,从而继续程序的执行,同时也达到延迟时间的效果。由于使用的是系统的定时器进行延迟,所以时间相对准确。第二种情况,当需要周期性的执行一个任务时,将这个函数放在某个定时器的中断服务函数

2017-03-01 20:44:42 8427

原创 STM32 延时函数解析

一、函数原型STM32官方提供的函数库中,可以找到类似于 HAL_Delay() 这样的函数。这个函数的就是通过使用定时器,达到一个较为精确的时间延迟,提供给用户调用。这个函数一般包含在类似于 stm32f4xx_hal.c 这样的函数中。函数原型如下:__weak void HAL_Delay(__IO uint32_t Delay){ uint32_t tickstart = 0U;

2017-02-28 15:29:23 14495 2

原创 FatFs 使用中文长文件名

一、说明 使用长文件名,一般会是在使用 f_readdir() 这个函数时碰到,这个函数的功能就是获取上一步使用 f_opendir() 打开的文件夹中的内容,并将文件信息保存到定义的结构体。结构体内容如下, 里面包含有文件大小,上一次修改日期,文件属性,文件名等。可见,普通文件名是存在一个 fname[13] 的数组里的,这就使得长文件名无法正常显示。而长文件名是一个指针,这个指针指向的数

2017-02-24 13:41:06 3770 1

原创 树莓派3 安装OSMC系统搭建媒体服务

OSMC是一款基于 Linux 免费开源的媒体播放系统。目前支持树莓派1、2、3、zero,vero,Apple TV这几款硬件平台。 一、必备工具1、树莓派32、OSMC OS3、内存卡(推荐8G以上)4、显示器(可通过hdmi转vga线连接到vga显示器)5、2A的电源适配器二、安装步骤安装的方法有三种,如下。方法一比较简单,也是常用的为树莓派烧写系统的方式;方法二为树莓派官方推荐

2017-02-07 13:23:32 26729 1

原创 树莓派3 安装Flint OS

Flint OS 是基于最新的Linux长期支持版4.4内核版本和最新的稳定版Chromium OS r55开发的操作系统。更多的介绍可以上官网的视频介绍。一、必备工具1、树莓派32、Flint OS3、内存卡(推荐8G以上)4、显示器(可通过hdmi转vga线连接到vga显示器)二、安装步骤1、下载安装镜像 2、烧写内存卡 烧写的方法可以看官网的介绍,写的非常详细,推荐直接使用极简方

2017-02-04 14:01:27 6934 3

原创 JRE运行环境出错导致无法安装STM32CubeMX解决方法

一、问题安装 STM32CubeMX 一直提示需要安装JAVA运行环境,提示界面如下: 但实际上已经正确安装了JRE,如下为JAVA版本。 问题原因:我的电脑上具有很多版本的JRE,并且有一个版本注册表信息出错,所以无法正常卸载。二、解决方法1、先完整卸载目前已安装的JAVA版本,可利用官方提供的卸载工具。 如上图所示,电脑里安装了4个版本的JRE,只需安装最新版的就好,其他直接卸载

2017-01-23 15:04:40 19161 1

原创 搭建kindleEAR为kindle推送RSS订阅

一、简介kindleEAR是一个运行在Google App Engine(GAE)上的Kindle个人推送服务应用,生成排版精美的杂志模式mobi/epub格式自动每天推送至您的Kindle或其他邮箱。此应用目前的主要功能有:支持类似Calibre的recipe格式的不限量RSS/ATOM或网页内容收集不限量自定义RSS,直接输入RSS/ATOM链接和标题即可自动推送多账号管理,支持多用户和多

2017-01-16 16:51:37 5528

原创 树莓派3 安装谷歌物联网系统-Android Things

一、必备工具1、树莓派32、Android Things安装镜像3、Windows 10 IoT 核心版仪表板4、内存卡(推荐8G以上)5、显示器(可通过hdmi转vga线连接到vga显示器)6、Android Studio二、安装步骤1、下载Android Things 下载之后解压出ISO文件。2、使用Win32DiskImager刷入镜像 写入的过程比较慢,大概需

2017-01-12 11:47:25 7733 11

原创 树莓派3 安装Win10 IoT 操作系统

一、必备工具1、树莓派32、Windows 10 IoT Core Insider Preview3、Windows 10 IoT 核心版仪表板4、内存卡(推荐8G以上)5、显示器(可通过hdmi转vga线连接到vga显示器)二、安装步骤1、下载并安装Windows 10 IoT 核心版仪表板 点击获取IoT核心版仪表板,下载之后进行安装。2、下载,解压并安装Windows 1

2017-01-11 20:04:39 50043 13

原创 Nexus5恢复官方系统,刷Recovery,刷Xposed框架,获取Root权限

谷歌官方不在对Nexus5手机升级最新的Android7.0系统,但是在XDA论坛上已经有开发者制作了第三方刷机包。刷机之后体验了一段时间,就没怎么用了。后来出现了闪屏的现象,无法判断是否是因为升级系统导致的,也不排除是硬件的原因。只好刷回官方匹配的6.1系统,刚刷回时依然出现,用了几次后发现居然好了。下面是重新恢复官方系统后做的必不可少的工作。下图为闪屏现象。 本文虽针对nexus5手机,但

2016-12-19 09:21:05 10559

原创 Kindle Paperwhite 2 USB升级

关于更新方法具体请看Kindle Paperwhite2(第6代)5.7.2.1固件升级教程一、升级过程下载 拷贝到kindle 升级提示 重启升级 二、更新内容1、更新了设置界面 2、汉字注音 3、全新字体 Amazon Ember Bold

2016-12-13 22:20:48 1203

翻译 BCM2835 芯片数据手册(中文翻译)

1 前言1.1 概述BCM2835 具有以下可以被 ARM 安全使用的外设:定时器中断控制器GPIOUSBPCM/I2SDMAI2C 主机I2C/SPI 从机SPI0,SPI1,SPI2PWMUART0,UART1本数据手册旨在对这些外设的细节进行描述,以方便开发者对该芯片移植操作系统。有一些被 GPU 控制的外设将不会出现在本数据手册。不推荐从 ARM 访问这些外设。1.2

2016-12-08 19:11:14 31598

转载 关于嵌入式系统的学习路线图

来源:本文乃同济大学软件学院王院长(JacksonWan)在同济网论坛发表的帖子《谈谈软件学院高年级同学的学习方向》的第二部分。三部分依次为:一、关于企业计算方向;二、关于嵌入式系统方向;三、关于游戏软件方向。嵌入式系统方向嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏

2016-12-06 11:57:24 596

原创 C语言宏定义的几种简单用法

1、计算数组的大小#define countof(a) (sizeof(a)/sizeof(*(a)))2、转换大小写字母#define FS_TOUPPER(x) ((((x) &gt;= 'a') &amp;&amp; ((x) &lt;= 'z')) ? (x) - 'a' + 'A' : (x))#define FS_TOLOWER(x) ((((x) &gt;= ...

2016-11-29 16:49:35 6908

原创 STM32 BootLoader升级固件

BootLoader关于Bootloader,从书上的文字描述,很难理解这个名词是什么,有什么用。这次用到了,算是有了更进一步的认识。一、知识点1、BootLoader就是单片机启动时候运行的一段小程序,这段程序负责单片机固件的更新,也就是单片机选择性的自己给自己下程序。可以更新,也可以不更新,更新的话,BootLoader更新完程序后,跳转到新程序运行;不更新的话,BootLoader直接跳转到

2016-11-28 16:43:37 38190 10

原创 大端模式转小端模式

大端模式转小端模式一、大端模式与小端模式 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。 小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分

2016-11-11 09:49:27 1150

原创 static __inline 在IAR和keil开发环境下的差别

本文同步至个人博客:cyang.techstatic __inline这条语句在IAR和Keil下的需要写成不同的形式,否则会报错。 如下: 1、IAR错误 2、IAR正确 3、Keil错误 4、Keil正确 总结就是,在IAR环境下,需要写成static inline,而在keil环境下,需要写成static __inline

2016-10-29 18:58:19 7070 2

原创 STM32固件库 assert_param函数

本文同步至个人博客:cyang.tech一、知识点-1、固件函数库通过检查库函书的输入来实现运行时间错误侦测。通过使用宏assert_param来实现运行时间检测。所有要求输入参数的函数都使用这个宏。它可以检查输入参数是否在允许的范围之内。 例如通过定义#define IS_ADC_ALL_PERIPH(PERIPH) (((PERIPH) == ADC1) || \ ...

2016-10-24 12:20:56 986

原创 Chrome浏览器常用插件(三)

本文同步至个人博客:cyang.tech接《Chrome浏览器安装,常用插件(一)》 接《Chrome浏览器常用插件(二)》10、拖拽搜索 这是一款划词搜索的增强插件,非常的实用,使用频次也非常的高。在Chrome浏览器里,默认状态下划词是不会有反应的,如下图所示: 但是可以将划词拖动到标签页,那么将在搜索引擎中搜索,不过这种方式需要拖动的距离比较远,如下图: 而使用这款插件后,向左边拖动可从

2016-09-24 22:40:54 800

原创 MX3从flyme5降级至flyme3

本文同步至个人博客:cyang.tech很久没关注这款已经过时很久的手机了,前段时间逛贴吧突然发现官方居然升级了flyme5。一定是贴吧呼声太高,也看得出来魅族还算有诚意。然而,新的系统运行实在是太不流畅了,也很费电,无奈之下只好降级为之前一直稳定使用的flyme3。以下为小结,记录这次降级的过程。步骤1、到官网下载固件包,需下载flyme4和flyme3的,每个版本各选一个下载,几点几的小版本无

2016-09-21 20:46:46 8127 2

原创 树莓派使用USB摄像头和motion实现监控

本文同步至个人博客:cyang.tech一、工具1、树莓派3B2、USB摄像头二、操作步骤1、安装motionsudo apt-get install motion2、配置motion(1)sudo nano /etc/default/motion将里面的no修改成yes,让motion可以一直在后台运行:start_motion_daemon=yes(2)sudo nano /etc

2016-09-12 23:32:15 28479 21

原创 Win 10 下安装Win 7双系统

本文同步至个人博客: cyang.tech上一篇文章说了在Win10下使用VM虚拟机安装双系统的教程。其实虚拟机已经可以解决很多的需求了。但问题在与,网卡的MAC地址不同。在虚拟机里就算使用桥接模式,可以正常链接网络,但还是不能使用正常网卡的MAC地址。一、安装说明1、在Win 10的情况下,将磁盘进行分区,划分一个新的分区,大小依据个人情况而定,最好是50G,我这里只分了30G.2、由于我的整

2016-09-11 20:11:17 3308 1

原创 Win 10下VM虚拟机安装Win 7

由于主机为64位系统,近期需要用到32为系统,所以想在Win 10 64位下使用虚拟机安装一个32位的Win 7。以下为安装过程。网上的很多教程,很多还要用到PE,分区什么的。实际上在VM12虚拟机下,已经可以全自动的安装Win 7了,很多的Linux系统也都可以全自动安装。1、版本说明1、VM虚拟机 VMware® Workstation 12 Pro2、Win 7 Windows 7 E

2016-09-11 10:11:20 6612

原创 Chrome浏览器常用插件(二)

接《Chrome浏览器安装,常用插件(一)》4、ABP 广告拦截,不多说。 5、OneTab 可以讲浏览器标签页暂时收集起来,以便以后恢复。 6、Isometric Contributions 可以将github的日活跃图从平面的改成立体的。 7、Octotree 可以讲github上的项目文件结构显示在左侧。如下图: 8、扩展管理器 扩展程序管理器,可以方便的对Chrome的扩展

2016-09-04 10:06:47 1136

j-link最新驱动 18/04/20

jlink最新驱动,支持最新版本JLINK V9,版本号为6.32,官方原版。

2018-04-25

en.stsw-link004

en.stsw-link004 用于下载 STM32 程序 官方原版,给无法从官网下载的人

2018-05-05

j-link v9 bootloader

j-link v9 bootloader 修复 j-link 调固件,方法见https://blog.csdn.net/u011303443/article/details/82685875

2018-09-14

j-link v9 修复

用于修复 j-link v9的固件。 修复方法在见博客https://blog.csdn.net/u011303443/article/details/82685875

2018-09-13

CM3权威指南.pdf

CM3权威指南.pdf Joseph Yiu 著 宋岩 译 不管你是做软件的还是做硬件的,只要相中了ARM的Cortex‐M3处理器,这本 书就是为你而写。

2019-04-14

source insight4 sublime 主题

source insight4 sublime主题分享 参看博客 https://blog.csdn.net/u011303443/article/details/61413583

2018-10-18

Clover_Setup_3.0.406

早期无广告版本,稳定快速,几年前保存的,一只用到现在。

2019-04-09

cyang812的留言板

发表于 2020-01-02 最后回复 2020-01-02

为什么不能更换头像?

发表于 2017-01-08 最后回复 2017-01-12

空空如也

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

TA关注的人

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