自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lorain_Lynies的博客

投我以桃,报之以李。——Persistence is the most basic quality of a programmer!

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

原创 STM32F103C8开发紫外线传感器SI1133的使用(七)

SI1133传感器是基于I2C通信的,关于I2C部分请参考:关于传感器初始化参数的说明:PARAM_CHAN_LIST:配置通道,从bit0到bit5,分别代表通道0到5,共六个通道,最高两位无效;PARAM_ADCCONFIGx:半导体功能配置,0x78表示配置成UV紫外线检测,积分时间基数短24.4us,即CFG_RATE_SHORT|CFG_UV,其余见d

2016-11-23 15:46:54 5468 1

原创 STM32F103C8开发I2C通信(六)

关于参数id的说明:id是指与MCU相通信的设备的地址,其中id为七位地址,最后一位作为读写标志位使用;例如:当外接设备为型号为24C02的E2PROM时,根据24C02数据手册说明地址为0B1010000,则补全为8位为0B10100000,16进制为0xA0;#include "stm32f10x.h"#define I2C_Speed 400000#

2016-11-23 14:17:13 4051

原创 STM32F103C8开发74HC595串行转并行输出(五)

1、新建项目,选择芯片型号,选中如下库文件:代码如下:#include "stm32f10x.h"#define MOSIO GPIO_Pin_12 //=PA12;#define R_CLK GPIO_Pin_13 //=PA13;#define S_CLK GPIO_Pin_14 //=PA14;void NOP(void){ uint16_t i; f

2016-09-08 14:07:24 6717 1

原创 STM32F103C8开发CAN通信(四)

这部分只有CAN的初始化,发送,接收中断程序,不含主程序和数据处理程序。#include "stm32f10x.h"uint8_t mailbox;CanTxMsg TxMessage = {0x12345678, 0x00000000, CAN_ID_STD, CAN_RTR_DATA, 0x00};void CAN_Start(void){ GPIO_InitTypeDef

2016-08-21 17:19:46 2700

原创 STM32F103C8开发TIM定时器(三)

勾选固件库,选中:CMSIS>CORE;Device>Startup;>StdPeriph Drivers>EXTI;>Framework;>GPIO;>RCC;>TIM;等#include "stm32f10x.h"void TIM2_IRQHandler(void){ if (TIM_GetITStatus(TIM2, TIM_FLAG_Update) != RESET) {

2016-08-15 23:28:58 4726

原创 STM32F103C8开发USART通信(二)

1、新建工程。2、勾选固件库。选中:CMSIS>CORE;Device>Startup;>StdPeriph Drivers>EXTI;>Framework;>GPIO;>RCC;>USART;等#include "stm32f10x.h"void USART1_IRQHandler(void){ uint16_t tmp; if (USART_GetITStatus(USA

2016-08-15 23:14:27 1225

原创 STM32F103C8开发GPIO操作(一)

1、开发环境Keil 5,处理器芯片为stm32f103c8t6。2、测试环境为普中科技实验仪。3、新建工程>选择芯片类型>选择需要使用的固件库。#include "stm32f10x.h"void Delay(){ uint16_t i,j; for(i=0;i<1024;i++) for(j=0;j<2048;j++) ;}int main(){ GPIO_In

2016-08-14 21:36:05 4869

转载 蓝牙协议开发常见词汇缩写

指定缩略词和规格名称缩略词名称类型3DSP3D 同步配置文件传统802.11 MAC-PHY802.11 MAC-PHY核心802.11 PAL802.11 PAL​核心A2DP高级音频分发配置文件传统A2MP替代 MAC-PHY 管理器协议核心​AIOP自动

2016-08-05 10:08:49 5000

原创 按键控制程序(二)

这部分程序是通过扫描按键状态来控制LED灯的开关,当然同上一篇博客一样,同样用函数封装起来,方便以后使用。另外,为了进行积累,个人认为把功能分散到不同的文件中,可以方便管理,于是对前面的代码进行拆分。1、添加头文件。在头文件中进行函数申明,和一些定义,以及引入这样,我们的应用程序代码就大大的缩短了,而且有了模块化的感觉。#ifndef _MAIN_H#define _MAIN

2016-08-02 22:27:02 1069

原创 点亮LED灯(一)

想当初都是用汇编来编写单片机的程序,那滋味现在想来都是满满的回忆,还是用C语言写起来爽快啊!用C写单片机程序,只需要引入头文件即可,实际上该头文件只是定义了特殊功能寄存器地址。为了今后使用方便,我们封装一个函数,用来开关LED灯,通过参数来控制操作的P端口,并且引入掩码来操作单个和多个bit位。本例程能达到逐个打开LED然后逐个关闭的效果。#include void LedOn

2016-08-02 21:58:23 1081

原创 CSR1010蓝牙开发探索(一)

花了多少时间我已经不想提起,但是至少还是有点成果的,分析了不少代码,也看了不少资料,发现比较接地气的东西还是比较少,不多花点时间积累,说实话很辛苦。现在还没有足够的水平上升到蓝牙协议的层次,饭要一口一口吃,不然就消化不良了不是?所以还是慢慢来,记录一下探索蓝牙协议的过程,希望对像我一样白的新手会有帮助。准备的开发板是keyfob,蓝牙芯片CSR1010,开发环境是CSR uEnergy S

2016-08-02 10:24:51 8943 5

原创 白色网格统计poj1656-Counting Black

题意是有一个100x100的网格,然后我们根据指示在网格中涂上白色或者黑色。然后统计指定网格中白色格子的数量。#include "stdio.h"#include "string.h"void main(){ int color[105][105]; char s[10]; int n, i, j, x, y, l, sum; while (scanf

2016-07-31 15:32:38 660

原创 寻找特别的数字poj1316-Self Numbers

这题的意思是凡是可以由其他数字按照方式y=abc+a+b+c的方式生成的数字都不叫Self Numbers。因此,对于这一题,我们可以从1开始,按照上面的公式把所有能够生成的数字计算出来,并且进行标记,最后输出从1到10000中没有被标记的数字。代码如下:#include #include int flag[10000];int main(){ int i,t,res;

2016-07-31 15:05:04 521

原创 C语言文件操作函数

有时候在调试程序需要进行大量数据的输入输出时,如何还是采用scanf()、printf()的方式进行,那就苦逼了。。。万一数据上有一些小改动,那就更苦逼了,所以还是用文件来帮我们记录下来,这样在分析的时候才能更方便一些。再说了,什么地方都需要用到文件,所以这个也是个重要的操作啊!需要包含头文件来一个小示例:#include int main(){ FILE *fp;

2016-07-30 17:14:53 337

原创 C语言结构体和共同体的差别

C语言的结构体和共同体由两个关键词进行定义:struct和union。其中union许久不用,都差点忘了这个数据类型了。粗看之下这两种数据类型的定义方式并没有什么不同,但是两者却有着本质的差别。两种数据类型定义方式如下:struct ST{ int a; float f; char c;};union UN{ int a; float f; char c;};

2016-07-30 16:18:01 2308

原创 ArchLinux必备命令记录

1、添加新账户。useradd username新建账户;passwd username修改密码;userdel -f username删除账户及其配置文件;2、退出登录。logout3、关机命令。shutdown now;立即关机;shutdown 10:30;在10:30关机;shutdown -r +5;5分钟后重启;

2016-07-26 23:51:13 5770

原创 为ArchLinux安装一些软件

虽然装好了系统,可是什么都没有,所以还是先安装一些必备软件比较好。1、浏览器安装:panman -S opera2、

2016-07-26 23:30:41 1783

原创 CSR1010定时器的使用

熟练使用CSR1010的定时器是十分必要的,因为在后续的蓝牙通信协议的开发中会用到,所以很有必要做一下练习。这个示例定时3秒,通过uart通信发送通知到PC。因此,要求PC安装一个串口调试工具来查看消息,设置波特率19200,数据位8bit,停止位1,无校验。使用定时器须知如下几点:1、引入头文件,头文件定义了定时器函数调用接口,另一个头文件定义了一些需要使用的时间常量,已经包含到中。

2016-07-26 21:30:42 2596

原创 CSR1010使用UART进行串口通信

CSR1010蓝牙芯片集成了UART串口通信的功能,能够十分方便的和MCU进行通信。通过SDK提供的函数库,能够很容易的进行通信程序的编写。为编写UART通信程序,需要做如下了解:1、头文件和两个,提供了最基本的配置接口和发送数据的接口,封装了一些能够直接使用和发送数据的函数。示例使用头文件。2、初始化函数。void DebugInit (uint16 rx_thresh

2016-07-26 21:16:49 4134 4

原创 CSR1010蓝牙开发I/O操作

CSR1010开发前期准备1.开发环境CSR uEnergy SDK 2.5.12.硬件准备keyfob蓝牙开发板,USB-SPI下载器CSR1010 I/O开发须知:关于I/O操作的函数库被定义在头文件中,查阅函数库我们需要用到一下几个函数:1、设置引脚模式,我们需要将其设为user模式。void PioSetModes (uint32 mask, pi

2016-07-26 19:06:49 4920 1

原创 字符处理题poj1298-The Hardest Problem Ever

这题算是字符加密一类的题,意思是将原字符序列用新的字符序列代替,然后生成一串看不懂的字符串。我们自要按对应关系进行还原输出即可,这题更简单的是替换后的字符序列只是在原字符序列上右移了几个字符,所以编码还是很容易的。#include #include int main(){ char str[201]; int i; while(1) { gets(str); if(s

2016-07-25 22:41:27 710

原创 Sublime Text+MinGW实现轻量级C语言开发环境

十分喜欢sublime text这个文本编辑器,主要是小巧强大,插件丰富。必备插件package control插件管理器,codeintel代码补全插件,emmet快速编码神器(html/css),coolformat代码格式化工具,jsformat脚本格式化工具。配置sublime text的C语言编译器。1、下载安装MinGW。添加路径C:\MinGW\bin到系统变量PAT

2016-07-25 22:14:22 1261

原创 单片机关键字sfr和sbit的理解

在单片机C语言编程中,扩充了两个关键字sfr和sbit。sfr(Special Function Register特殊功能寄存器的缩写),sbit(特殊功能寄存器位),与定义一般的int、char型变量不同,这两个字定义的并不是变量,而作为特殊功能寄存器的引用,或许可以叫做别名。单片机头文件中定义了21个特殊功能寄存器,并且都是8位寄存器,而部分寄存器的每个位又用sbit进行了定义:s

2016-07-24 13:26:34 15239 3

原创 进制转换 poj1220-NUMBER BASE CONVERSION

这个题目要求进行从2-62之间任意进制间的转换。第一个是要转换的行数,以下第一个是输入进制,第二个数是转换的输出进制,第三个是要转换的数据。输出按输入进制输入数据换行输出转换后的进制和数据输出。#include "stdio.h"#include "string.h"int main(){ int i,l,k,a,b,t,T[550],A[550]; char

2016-07-23 22:16:54 407

原创 无聊水题一篇 poj3916-Duplicate Removal

这题就是移除重复的数字,然后按原顺序输出,只是每行末尾多了个美元符号;突然想到水题做多了会不会影响智商。。。。。。。。#include "stdio.h"int main(){ int a[30]; int n,i; while(scanf("%d",&n),n) { memset(a,0,sizeof(a)); i=0; while(i<n) { sca

2016-07-23 10:41:22 541

原创 VMware中archlinux开机遇到a start job is runing for sys-subsystem-net-device-VMnet8问题与不能联网问题

刚入手linux,好不容易在VMware中把archlinux给安装好了,然后高高兴兴的reboot,哪知一来就遇到a job isxxxxxx然后等待一分半钟的抓狂问题。原本想着算了,暂时忍忍好了,却不料系统启动后竟然无法联网。于是网上各种搜索查看,各种命令的尝试,任然没有解决问题,最后还是按照大家所说,上wiki寻求解决之道。无奈英语水平确实较差,几番周折勉强算是看懂了些,然后问题也算

2016-07-23 10:17:59 4035

原创 新手ArchLinux安装笔记

archlinux镜像下载地址:https://www.archlinux.org/download/准备工作,启动VMware Workstation,创建新的虚拟机,选择典型安装,安装来源选择光盘镜像文件,下一步,客户机操作系统选择linux,版本选3.x内核64位,虚拟机名称ArchLinux,磁盘8G,存单个文件,自定义硬件设置内存512M。完成开启虚拟机。好的步骤如下:1

2016-07-20 23:25:33 1471

原创 C语言代码-水题poj3781--Nth Largest Value

这个题就是要求输出第三大的数,我们只需要更新前面最大的三个数,最后输出第三个数就好了。#include "stdio.h"int main(){ int first, second, last; int n, ca, i, tem; scanf("%d", &n); while(n--) { first = second = last

2016-07-20 23:12:36 520

原创 快速排序 487-3279 poj1002

这一题应该是考察快速排序问题,题意是输入若干字符,需要对这些字符进行转换成对应的数字,需要注意的是Q和Z没有对应的数字,最后需要将重复次数大于1的号码排序输出。如果没有重复的也要输出No duplicates.#include "stdio.h"#include "string.h"#define max 100000long num[max];long convent(char

2016-07-19 21:07:51 469

原创 高精度乘法计算 poj1001 Exponentiation C代码

这个题用C语言来做代码量还是比较大的,另外还要考虑0和1的特殊情况,在数据的获取也不能用%f来代替%s,结果小于1的时候整数部分不用输出。#include "stdio.h"#include "string.h"#define max 200typedef struct{ int num[max];}ji;ji biao[2];void mul(int x,int m,int

2016-07-18 21:36:40 780

转载 算法学习第一题poj 1000

这题是最简单的算法题,求a+b,不过貌似还是有人能够做错啊,估计是少了分号逗号什么的,或者是半角全角没分清楚,往往这样的错误对于刚开始写代码的新手还是十分头疼的。贴上代码:#include int main(){ int a,b; scanf("%d %d",&a,&b); printf("%d\n",a+b); return 0;}

2016-07-18 21:24:18 319

原创 前言-初来咋到-保持微笑

要说老早前就想写写自己的博客了,只是一直以来想搭建一个自己的博客服务器,定制自己的wordpress博客主题,当然也研究了一段时间,然而并没有研究透彻,再者和我的学习从业方向是完全不同的路,因此也就放下了。想写博客的理由还是比较充足的,当然不需要理由也是可以写的。一方面,在网上看了不少别人的技术博客,甚是羡慕,期待自己有一天也能成为技术大牛。另一方面,从别人的博客上学了好多东西,不能总是一味的

2016-07-18 20:41:05 331

空空如也

空空如也

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

TA关注的人

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