摘要:
缘 起 最近在stm32f103上做一个智能家居的项目,其中选择的实时操作系统是 rt_thread OS v1.2.2稳定版本,其中涉及到C和java(android)端数据的交换问题,经过讨论和研究,选择了json格式的数据进行交互。当然,如果自己去写一个json解析器,有点重造轮子的嫌疑。于是 阅读全文
摘要:
前提: 开始用的是 cc2530 timer 1来做PWM的,已经可调占空比了,但是由于硬件的改动,需要用timer 3 和 timer 4 代替。由于调试过程中出了些小问题,于是自己把这个贴出来。关键点注释出来。说说 硬件吧: timer 1 P1_0 口timer 3 P1_6 P1_7... 阅读全文
摘要:
需要在ZStack 协议栈里使用PWM,于是使用其16bit的timer 1来实现之。使用 P1_0口输出,使用的是正计数/倒计数模式,占空比为50%。代码如下: 1 #include 2 3 /*使用P1_0口为输出、外设端口,来输出PWM波形*/ 4 void init_port(void)... 阅读全文
摘要:
前题: 在前几个月的时候,写了一篇笔记,说的是kernel compile的事情,当时经验不足,虽说编译过了,但有些地方写的有错误--因为当时的理解是有错误的。今天一一更正,记录如下:前文笔记链接: ubuntu 12.04编译安装linux-3.6.10内核笔记NO 1: 内核清洁工作。 一般的清洁可能会立刻想到make clean.但这个确实不完整,make clean只能清楚一部分东西。而有一个命令是做的非常彻底的,那就是make mrproper。对于这两个的差别,可以在进入kernel source 目录的时候,make help.1 xxx@linux-3.6.4:%make... 阅读全文
摘要:
前提:ubuntu 12.04 LTS x64用的内核版本为3.5的,同时,我的电脑今天声音总是没有,最后就想了想,编译内核吧,都使用linux这么长时间了,怕啥呢?由于不敢跨版本太多,最后就选了3.6.10的内核,并且下载了相应的补丁.--------------------------------下文写的有一些混乱,有些地方有错误,现已经在另外一个地方进行了修正。下面是链接:-----------------------------------------------------------对>的修正2013/08/25 修------------------------------ 阅读全文
摘要:
前记:LFS的意义就不必赘述,而自己也是因为工作的原因,需要学习LFS,特此记述。1 首先从www.google.com.hk中输入LFS,然后进行搜寻,基本是第一条就是LFS Home:LFS Project Homepage - Linux From Scratch! 百度似乎也可以,不过在结果中似乎还需要手动查询一小会儿。2 去LFS Home的目的是取得LFS的教程和各种源代码包。后面LFS学习的时候,就是按照LFS教程上的步骤进行操作,操作的对象就是LFS网站上提供的各种包(当然,也可能是包链接)点开LFS Home的下载按钮:http://www.linuxfromscrat... 阅读全文
摘要:
前题: 前面,通过分析中断的那几个库函数实现过程,加上对各种资料的阅读,于是自己也用寄存器实现了按键输入中断,呵呵~~~ 首先,外部事件/中断过程如下: A) 配置输入线: I/O口的模式,特性等等; B) 配置外部事件,并使能外部事件; C) 给该外部事件所带来的中断分组,分级<优先级>; D) 中断服务程序:当中断触发后,将跳到该程序中。按部就班,先说说我的硬件连接: 按键1 PD^11; 按键2 PD^12; LED1 PD^2; LED2 PD^3;软件实现: 按键1 按下:led 1、led2 循环亮、灭;按键2按下,led2 独亮。直接上代码:1:头文件exi... 阅读全文
摘要:
前题: 闭门造车,两周了,经过各种的思考和求问,反复阅读了<<M3权威指南>>和<<stm32不完全手册>>的相关章节,以及开发板厂商的实验例程,对stm32这块中断终有所悟,是以记之。 至于中断的什么优先级,什么优先级分组,使能之类的原理,就不再赘述。这里主要是记载以下如何使用中断,以及中断配置函数的实现过程,其中并叙述我曾经的疑惑和感悟。 我的开发板里的中断例程是用按键控制一个灯亮和灭的两个状态。 这个例程的实现过程如下描述:第一步,将一个I/O口配置成中断输入模式。 这里需要注意的是,GPIO本身是没有中断功能神马的。如果硬要使他产生中断输 阅读全文
摘要:
前题: 感觉一个警报灯<流水灯>,用库函数居然要很大的篇幅,虽然库函数很简单和方便,但是总是容易囫囵吞枣。而且嵌入式单片机编程中的位操作非常多,于是在这里用寄存器来好好锻炼下C语言的位操作。一、电路:依然控制LED1闪灭就OK了,LED1接stm32芯片的PORTD.2口,高电平输出。二、代码1,main.h、main.c#ifndef _MAIN_H_#define _MAIN_H_#include <stm32f10x.h>#include "led.h"#endif /*_MAIN_H_*/#include "main.h" 阅读全文
摘要:
前记: 以前自己在编写延时函数的时候,经常是for()结构或者while()结构以及do while{}结构。但这3种方法是非常的粗糙,在我现在的工作中是不能满足其精度的。由于stm32中有个滴答时钟,于是以后stm32相关的延时程序,打算拿它作挡箭牌了。 首先是,stm32 的数据手册上并没有滴答时钟的东西,只说了其会产生中断,具体如何,没说。谷歌了几遍,又查询了些许资料,发现来源于<<xxx权威指南>>和<<xxx技术手册>>。 然后在网上发现使用其作为延迟功能有两个方法,一个是使用中断方式,一个是使用查询方式<非中断>。由于尚未 阅读全文