关闭

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

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

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...
阅读(40) 评论(1)

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

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

utf-8 to unicode

一、utf-8 unicode utf-16 1、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。...
阅读(149) 评论(0)

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

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

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

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

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

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

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

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

Source Insight marco:MultiLineComment

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

Source Insight 更新4.0版本

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

f_open()使用错误记录

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

STM32 延时函数高级用法分析

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

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

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

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

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

STM32固件库 assert_param函数

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

Win 10下VM虚拟机安装Win 7

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

Atom编辑器插件安装

Atom编辑器做的非常酷炫,尤其是插件众多。之前就介绍过一个非常装逼的插件。这几天Atom编辑器出了问题,无法安装插件。连已有的插件都无法搜索出来。无奈之下,只好重装。没有卸载原有版本。直接去官网下载安装包,安装过程全自动,没有任何选择项。自动覆盖之前的安装包,而且之前安装过的插件也可以正常使用,不需要重新配置。 奇怪的是,在几个月以前安装的软件版本居然比现在高。 之前的版本是测试版,现在重新安...
阅读(369) 评论(0)

Chrome浏览器安装,常用插件(一)

最近更新了浏览器,在此写一篇文章,记录下Chrome浏览器的常用插件。一、Chrome安装1、建议直接官方下载地址,会自动根据操作系统自动选择32位/64位的安装器,大概1M,打开后会自动的在线安装。 若网速不行也可以百度,从百度软件中心下载离线安装包。 2、安装过程 3、下载完成后会自动完成安装。二、Chrome常用插件关于chrome的插件实在太多了,以下是一些我装机必备的...
阅读(681) 评论(0)

Genymotion 模拟器出现unable to load virtualbox engine 错误的解决方案

问题:打开Genymotion 模拟器出现unable load virtualbox engine 错误,从而导致无法使用该模拟器。 解决方法:1、设置Genymotion和VirtualBox的兼容性,设置为win7或者别的。 2、打开VirtualBox ,点击管理,点击全局设定,点击网络,点击仅主机网络。 3、设置ip地址如下图。...
阅读(489) 评论(0)

VM虚拟机中Debian系统全屏显示(安装VM Tools)

VMware Tools是VMware虚拟机中自带的一种增强工具,是VMware提供的增强虚拟显卡和硬盘性能、以及同步虚拟机与主机时钟的驱动程序。 在VMware虚拟机中安装好了VMware Tools后,可以实现主机与虚拟机之间的文件共享,同时可支持自由拖拽的功能,鼠标也可在虚拟机与主机之前自由移动,使用ctrl+alt+enter还可以实现全屏显示。一、前期准备 1、点击VM管理界面,虚拟机菜...
阅读(1626) 评论(0)
34条 共2页1 2 下一页 尾页
    个人资料
    • 访问:209171次
    • 积分:2689
    • 等级:
    • 排名:第13476名
    • 原创:89篇
    • 转载:3篇
    • 译文:1篇
    • 评论:59条
    文章分类
    最新评论