<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Lorain_Lynies的博客]]></title><description><![CDATA[投我以桃，报之以李。——Persistence is the most basic quality of a programmer！]]></description><link>https://blog.youkuaiyun.com/Lorain_Lynies</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Lorain_Lynies]]></copyright><item><title><![CDATA[STM32F103C8开发紫外线传感器SI1133的使用（七）]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/53306251</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/53306251</guid><author>Lorain_Lynies</author><pubDate>Wed, 23 Nov 2016 15:46:54 +0800</pubDate><description><![CDATA[SI1133传感器是基于I2C通信的，关于I2C部分请参考：


关于传感器初始化参数的说明：


PARAM_CHAN_LIST:配置通道，从bit0到bit5,分别代表通道0到5，共六个通道，最高两位无效；


PARAM_ADCCONFIGx:半导体功能配置，0x78表示配置成UV紫外线检测,积分时间基数短24.4us，即CFG_RATE_SHORT|CFG_UV，其余见d]]></description><category></category></item><item><title><![CDATA[STM32F103C8开发I2C通信（六）]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/53304510</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/53304510</guid><author>Lorain_Lynies</author><pubDate>Wed, 23 Nov 2016 14:17:13 +0800</pubDate><description><![CDATA[关于参数id的说明：
id是指与MCU相通信的设备的地址，其中id为七位地址，最后一位作为读写标志位使用;
例如：当外接设备为型号为24C02的E2PROM时，根据24C02数据手册说明地址为0B1010000,则补全为8位为0B10100000,16进制为0xA0;
#include "stm32f10x.h"
#define I2C_Speed              400000
#]]></description><category></category></item><item><title><![CDATA[STM32F103C8开发74HC595串行转并行输出（五）]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52470934</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52470934</guid><author>Lorain_Lynies</author><pubDate>Thu, 08 Sep 2016 14:07:24 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[STM32F103C8开发CAN通信(四)]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52268299</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52268299</guid><author>Lorain_Lynies</author><pubDate>Sun, 21 Aug 2016 17:19:46 +0800</pubDate><description><![CDATA[这部分只有CAN的初始化，发送，接收中断程序，不含主程序和数据处理程序。
#include "stm32f10x.h"

uint8_t mailbox;
CanTxMsg TxMessage = {0x12345678, 0x00000000, CAN_ID_STD, CAN_RTR_DATA, 0x00};

void CAN_Start(void)
{
	GPIO_InitTypeDef ]]></description><category></category></item><item><title><![CDATA[STM32F103C8开发TIM定时器(三)]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52215921</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52215921</guid><author>Lorain_Lynies</author><pubDate>Mon, 15 Aug 2016 23:28:58 +0800</pubDate><description><![CDATA[勾选固件库，选中: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)
	{
	]]></description><category></category></item><item><title><![CDATA[STM32F103C8开发USART通信(二)]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52215814</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52215814</guid><author>Lorain_Lynies</author><pubDate>Mon, 15 Aug 2016 23:14:27 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[STM32F103C8开发GPIO操作(一)]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52206357</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52206357</guid><author>Lorain_Lynies</author><pubDate>Sun, 14 Aug 2016 21:36:05 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[蓝牙协议开发常见词汇缩写]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52126064</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52126064</guid><author>Lorain_Lynies</author><pubDate>Fri, 05 Aug 2016 10:08:49 +0800</pubDate><description><![CDATA[指定缩略词和规格名称



缩略词
名称
类型


3DSP
3D 同步配置文件
传统


802.11 MAC-PHY
802.11 MAC-PHY
核心


802.11 PAL
802.11 PAL​
核心


A2DP
高级音频分发配置文件
传统


A2MP
替代 MAC-PHY 管理器协议
核心


​AIOP
自动]]></description><category></category></item><item><title><![CDATA[按键控制程序（二）]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52098507</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52098507</guid><author>Lorain_Lynies</author><pubDate>Tue, 02 Aug 2016 22:27:02 +0800</pubDate><description><![CDATA[这部分程序是通过扫描按键状态来控制LED灯的开关，当然同上一篇博客一样，同样用函数封装起来，方便以后使用。
另外，为了进行积累，个人认为把功能分散到不同的文件中，可以方便管理，于是对前面的代码进行拆分。
1、添加头文件。
在头文件中进行函数申明，和一些定义，以及引入这样，我们的应用程序代码就大大的缩短了，而且有了模块化的感觉。

#ifndef _MAIN_H
#define _MAIN]]></description><category></category></item><item><title><![CDATA[点亮LED灯（一）]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52098221</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52098221</guid><author>Lorain_Lynies</author><pubDate>Tue, 02 Aug 2016 21:58:23 +0800</pubDate><description><![CDATA[想当初都是用汇编来编写单片机的程序，那滋味现在想来都是满满的回忆，还是用C语言写起来爽快啊！
用C写单片机程序，只需要引入头文件即可，实际上该头文件只是定义了特殊功能寄存器地址。
为了今后使用方便，我们封装一个函数，用来开关LED灯，通过参数来控制操作的P端口，并且引入掩码来操作单个和多个bit位。
本例程能达到逐个打开LED然后逐个关闭的效果。
#include 

void LedOn]]></description><category></category></item><item><title><![CDATA[CSR1010蓝牙开发探索（一）]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52091890</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52091890</guid><author>Lorain_Lynies</author><pubDate>Tue, 02 Aug 2016 10:24:51 +0800</pubDate><description><![CDATA[花了多少时间我已经不想提起，但是至少还是有点成果的，分析了不少代码，也看了不少资料，发现比较接地气的东西还是比较少，不多花点时间积累，说实话很辛苦。
现在还没有足够的水平上升到蓝牙协议的层次，饭要一口一口吃，不然就消化不良了不是？所以还是慢慢来，记录一下探索蓝牙协议的过程，希望对像我一样白的新手会有帮助。
准备的开发板是keyfob，蓝牙芯片CSR1010，开发环境是CSR uEnergy S]]></description><category></category></item><item><title><![CDATA[白色网格统计poj1656-Counting Black]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52078829</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52078829</guid><author>Lorain_Lynies</author><pubDate>Sun, 31 Jul 2016 15:32:38 +0800</pubDate><description><![CDATA[题意是有一个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]]></description><category></category></item><item><title><![CDATA[寻找特别的数字poj1316-Self Numbers]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52078626</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52078626</guid><author>Lorain_Lynies</author><pubDate>Sun, 31 Jul 2016 15:05:04 +0800</pubDate><description><![CDATA[这题的意思是凡是可以由其他数字按照方式y=abc+a+b+c的方式生成的数字都不叫Self Numbers。
因此，对于这一题，我们可以从1开始，按照上面的公式把所有能够生成的数字计算出来，并且进行标记，最后输出从1到10000中没有被标记的数字。
代码如下：

#include 
#include 
int flag[10000];
int main()
{
	int i,t,res;
]]></description><category></category></item><item><title><![CDATA[C语言文件操作函数]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52073775</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52073775</guid><author>Lorain_Lynies</author><pubDate>Sat, 30 Jul 2016 17:14:53 +0800</pubDate><description><![CDATA[有时候在调试程序需要进行大量数据的输入输出时，如何还是采用scanf()、printf()的方式进行，那就苦逼了。。。
万一数据上有一些小改动，那就更苦逼了，所以还是用文件来帮我们记录下来，这样在分析的时候才能更方便一些。
再说了，什么地方都需要用到文件，所以这个也是个重要的操作啊！
需要包含头文件
来一个小示例：

#include 
int main()
{
	FILE *fp;
]]></description><category></category></item><item><title><![CDATA[C语言结构体和共同体的差别]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52073341</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52073341</guid><author>Lorain_Lynies</author><pubDate>Sat, 30 Jul 2016 16:18:01 +0800</pubDate><description><![CDATA[C语言的结构体和共同体由两个关键词进行定义:struct和union。
其中union许久不用，都差点忘了这个数据类型了。粗看之下这两种数据类型的定义方式并没有什么不同，但是两者却有着本质的差别。
两种数据类型定义方式如下：

struct ST
{
	int a;
	float f;
	char c;
};
union UN
{
	int a;
	float f;
	char c;
};]]></description><category></category></item><item><title><![CDATA[ArchLinux必备命令记录]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52040822</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52040822</guid><author>Lorain_Lynies</author><pubDate>Tue, 26 Jul 2016 23:51:13 +0800</pubDate><description><![CDATA[1、添加新账户。
useradd username新建账户;
passwd username修改密码;
userdel -f username删除账户及其配置文件;
2、退出登录。
logout
3、关机命令。
shutdown now;立即关机;
shutdown 10:30;在10:30关机;
shutdown -r +5;5分钟后重启;]]></description><category></category></item><item><title><![CDATA[为ArchLinux安装一些软件]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52040701</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52040701</guid><author>Lorain_Lynies</author><pubDate>Tue, 26 Jul 2016 23:30:41 +0800</pubDate><description><![CDATA[虽然装好了系统，可是什么都没有，所以还是先安装一些必备软件比较好。
1、浏览器安装：panman -S opera
2、]]></description><category></category></item><item><title><![CDATA[CSR1010定时器的使用]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52039831</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52039831</guid><author>Lorain_Lynies</author><pubDate>Tue, 26 Jul 2016 21:30:42 +0800</pubDate><description><![CDATA[熟练使用CSR1010的定时器是十分必要的，因为在后续的蓝牙通信协议的开发中会用到，所以很有必要做一下练习。
这个示例定时3秒，通过uart通信发送通知到PC。因此，要求PC安装一个串口调试工具来查看消息，设置波特率19200，数据位8bit，停止位1，无校验。
使用定时器须知如下几点：
1、引入头文件，头文件定义了定时器函数调用接口，另一个头文件定义了一些需要使用的时间常量，已经包含到中。]]></description><category></category></item><item><title><![CDATA[CSR1010使用UART进行串口通信]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52039717</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52039717</guid><author>Lorain_Lynies</author><pubDate>Tue, 26 Jul 2016 21:16:49 +0800</pubDate><description><![CDATA[CSR1010蓝牙芯片集成了UART串口通信的功能，能够十分方便的和MCU进行通信。
通过SDK提供的函数库，能够很容易的进行通信程序的编写。
为编写UART通信程序，需要做如下了解：
1、头文件和两个，提供了最基本的配置接口和发送数据的接口，封装了一些能够直接使用和发送数据的函数。
示例使用头文件。
2、初始化函数。
void  DebugInit (uint16 rx_thresh]]></description><category></category></item><item><title><![CDATA[CSR1010蓝牙开发I/O操作]]></title><link>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52038640</link><guid>https://blog.youkuaiyun.com/Lorain_Lynies/article/details/52038640</guid><author>Lorain_Lynies</author><pubDate>Tue, 26 Jul 2016 19:06:49 +0800</pubDate><description><![CDATA[CSR1010开发前期准备


1.开发环境CSR uEnergy SDK 2.5.1
2.硬件准备keyfob蓝牙开发板，USB-SPI下载器


CSR1010 I/O开发须知：
关于I/O操作的函数库被定义在头文件中，查阅函数库我们需要用到一下几个函数：
1、设置引脚模式，我们需要将其设为user模式。
void  PioSetModes (uint32 mask, pi]]></description><category></category></item></channel></rss>