关闭

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);...
阅读(133) 评论(0)

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

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

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 次...
阅读(108) 评论(0)

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

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

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

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

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

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

Source Insight 更新4.0版本

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

STM32 延时函数高级用法分析

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

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

1、计算数组的大小 #define countof(a) (sizeof(a)/sizeof(*(a)))2、转换大小写字母 #define FS_TOUPPER(x) ((((x) >= 'a') && ((x) = 'A') && ((x) <= 'Z')) ? (x)...
阅读(976) 评论(0)

大端模式转小端模式

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

安卓手机蓝牙控制智能小车 android程序设计

项目名称: 安卓手机控制智能小车本文主要介绍手机端程序设计源码托管在地址:github.com/cyang812/Bluetooth_Car 开发平台 :win10; 开发软件:Android Studio 2.1 在开发的过程中,软件版本有过几次更新,本文重点讲述更新逻辑及实现过程。一、Bluetooth_Demo(通过按钮控制)1、这是最早开发的版本,通过连接蓝牙后,可实现通过按钮(B...
阅读(5961) 评论(4)

不使用中间变量交换两数

交换两个数的值是比较基础也比较常用的算法,比如在冒泡排序法中,从第一数开始比较,如后一个数比其小则交换两数的值。一般在交换两数的值是,最简单的方法适用的方法就是用中间变量暂存一个数。例如,要交换a,b的值,可使用中间变量c暂存其中的一个数。 核心代码如下:c=b; b=a; a=b;当然也可以不使用中间变量的方法,如以下几种方法。1、加法: 核心代码如下:a=a+b; b=a-b; a=a-b;...
阅读(586) 评论(0)
    个人资料
    • 访问:264911次
    • 积分:3086
    • 等级:
    • 排名:第11861名
    • 原创:91篇
    • 转载:3篇
    • 译文:1篇
    • 评论:69条
    文章分类
    最新评论