自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android SystemUI的客制化 (2)

将Android SystemUI转换为Android Studio项目的好处是显而易见的。首先,将Android SystemUI移植到Android Studio环境中可以提高开发效率。Android Studio是谷歌官方推出的IDE开发工具,目前已经成为Android开发的标准工具。使用Android Studio进行开发可以获得更好的代码提示和自动补全功能,同时也能获得更丰富的插件支持。其次,将Android SystemUI转换为Android Studio项目可以使得代码更加清晰易懂。

2023-04-27 20:01:27 847

原创 Android SystemUI的客制化 (1)

随着Android系统的不断更新,越来越多的硬件商将根据Android系统客制化自己想要的内容,其中就包括安卓原生的SystemUI这个应用,本文就以Android 9 系统为例 介绍SystemUI的相关内容。虽然阅读 Android SystemUI 的源代码需要耐心和时间,但是对于认真学习和探究 Android 开发的同学来说是非常有价值的,可以帮助他们更深入地了解 Android 系统的工作原理和实现机制,并提高他们的开发能力和经验水平。

2023-04-19 16:23:28 936

原创 无线射频(二)

前言前面大体讲解了一下RF内核的知识,今天我们细讲CC2530_RF_FIFO访问 的相关知识。RF_FIFOCC2530发送或接收数据是通过FIFO操作来进行的。FIFO访问可以分为TXFIFO访问和RXFIFO访问,其操作都是通过SFR寄存器的RFD操作进行。当写入RFD寄存器时,数据被写入到TXFIFO,当读取数据RFD寄存器时,数据从RXFIFO中读出。 unsigned char i;s

2016-12-24 09:46:56 1563

原创 无线射频(一)

前言cc2530的外设和通用IO已经讲完了,今天我们开始讲CC2530的无线射频。RF内核RF内核控制无线射频模块,并且在MCU和无线电之间提供一个接口,可以发出命令,读取状态和自动对无线电事件排序。RF内核包括:无线电控制状态模块(FSM)、调制器,解调器、帧过滤和源匹配、频率合成器(FS)、命令选通处理器,定时器2(MAC定时器)。FSM模块FSM模块的主要功能包括控制RF收发器的状态、发送和接

2016-12-24 09:46:07 2025

原创 ADC信息采集

前言前面介绍了ADC,今天通过实例来讲解ADC的使用ADC的初始化通过代码讲解void ADCinit(){/*清除ADC数据寄存器*/ ADCH&=0x00; ADCL&=0x00;/*P0_7端口模拟 IO使能*/ APCCFG|=0x80;/*单次转换,参考电压为电源电压,对P0_7进行采样 抽取率为512*/ ADCCON3=0xb7;/*停止AD*

2016-12-23 20:45:07 11676

原创 ADC的介绍

前言ADC是我要讲的最后一个外设IO了,因此我尽可能的详细。所以今天主要是介绍ADC。下次博客才讲ADC的实例ADC的简介ADC支持14位模数转换,包含一个多路转换器,8个可独立配置的通道、一个参考电压发生器。特点1、可选的抽取率(采样频率);2、8个独立输入通道,可接受单端或差分信号;3、参考电压可选内部单端、外部单端、外部差分或AVDD5;4、转换结束可触发中断;5、转换结束可触发DMA

2016-12-23 20:44:28 7721

原创 DMA的使用实例

前言前面介绍了DMA的安装和初始化。今天我们通过实例来讲解DMA的使用。今天的内容是通过串口触发DMA传输实例,因此需要做以下工作DMA的初始化、串口初始化、串口传输、DMA触发传输。DMA初始化函数void DMAtext(),void DMAinit()串口初始化函数void UARTinit()串口传输函数void UartTX_Send_String(char *Data)以上的函数的课已

2016-12-23 19:35:15 1465

原创 DMA的初始化

前言前面讲解了DMA的配置,我们怎么使用它,因此今天,我们讲讲怎么初始化DMA配置已经配置好了,是不是应该启用我们的配置啊。DMA通道工作状态寄存器DMAARM故名思意,该寄存器是来控制DMA要怎么运作的。 //启用配置 DMAARM = 0x01;在启用DMA之前,我们要像其他有中断的寄存器一样需要清除标志位,DMA也不例外DMA中断标志寄存器DMAIRQ//清中断标志 DM

2016-12-23 19:33:44 2059

原创 DMA的配置与安装

前言前面提到,要想使用DMA首先要配置DMA废话不多说,直接上代码吧typedef struct { //源地址高8位 unsigned char SRCADDRH; //源地址低8位 unsigned char SRCADDRL; //目的地址高8位 unsigned char DESTADDRH; //目的地址低8位 unsigned char DEST

2016-12-23 17:27:39 1137

原创 DMA的介绍

前言什么是DMA,DMA有什么用?相信很多人都会这么问,秉着实用主义的原则,我也直接开讲了。DMA的介绍DMA控制器含有若干个可编程的DMA通道,用来实现存储器与存储器之间的数据传送,即DMA控制器通过访问整个XDATA存储空间来进行存储器与外设之间的数据传输。无需cpu的参与,DMA的操作能够减轻CPU的负担DMA的特点1、DMA具有以下特点:2、具有5个独立的DMA通道。3、具有3个可以配

2016-12-23 17:26:41 849

原创 定时器(三)

前言前面讲了利用定时器3的查询方式来实现LED1的闪烁,那么我们怎么用中断方式控制呢?今天,我们主要来讨论这个话题。那么我们想想,应该怎么让定时器3产生中断呢? 无非也就这几步骤:分频、打开溢出中断、装数、使能定时器3中断,使能总中断、启动计数。 那么分频需要用到哪个寄存器呢? 前章博客也讲过了,需要用到定时器3的控制寄存器T3CTL T3CTL|=0XE0; //

2016-12-23 17:24:40 938

原创 定时器(二)

前言前面讲了定时器1,定时器1是16位的,而定时器3和4是8位的,只有两个独立的比较通道,每个通道只能使用一个IO引脚。因此,要使用定时器3或4来控制LED灯的闪烁也非常简单。假如我们要用定时器3查询方式来实现LED1的闪烁,应该怎么做呢? 其实是很简单的,由于是查询方式,所以不需要开启中断,只需要给定时器分频,然后,给定时器装个计数的值。因此只需要用到两个寄存器。捕获比较寄存器TxCCnT3CC

2016-12-23 17:23:45 623

原创 定时器(一)

前言关于定时器的好处,我就不一一多说了,至少可以摆脱Delay()函数的不精准计时。什么是定时器?说白了就是精准的计数,数时间而已啊。因此我们只需要怎么使用它,不需要了解他的构造。那么我们怎么利用定时器来控制LED灯的闪烁呢? 首先配置输出模式/*设置P.0为输出模式*/P1DIR|=0x01;我们需要确定使用哪个定时器。这里我们使用Timer1; 然后需要给定时器分频定时器1控制寄存器T1C

2016-12-22 21:27:05 1639

原创 串口的中断和接收

前言前面介绍了串口的查询方式,没看过的童鞋可以查看我之前的博客。今天我们来介绍怎么利用终端接收串口的数据。关于串口中断没有繁杂的初始化。只需添加几句话就能实现串口中断了。直接上代码吧。UARTinitial(){ .....//接上篇博客的初始化代码/*串口中断标志位置*/UTX1IF=1;/*允许接收*/U0CSR|=0x40;/*开总中断,接收中断*/IEN0|=0x84;

2016-12-22 19:40:20 5883

原创 串口的发送

前言单片机如何与pc机进行通讯呢?可以用串口和网线嘛! 今天我们来讲讲怎么用串口点灯的小程序。 先做程序前,我们先受洗一下串口的使用。在cc2530的单片机上串口有UART模式和SPI模式。我们今天的主角就是UART。 因此我们要选择UARTUSART0控制和状态寄存器U0CSR/*选择UART的方式*/U0CSR|=0x80;接下来我们需要设置UART的模式,比如说是奇校验还是偶校验等等。

2016-12-22 13:58:01 915

原创 外设IO概述

前言前面我们讲了通用IO的使用,那么今天我们讲讲外设IO能做什么。 可以理解为外设IO能做更复杂的事情。 比如说外设IO的功能有ADC、USART、TIMER等等。 那么如何实现ADC转换、串口发送、定时器的使用呢。我们知道单片机要想工作,必须要有时钟频率。外设IO也不例外,因此我们先讲讲怎么初始化时钟频率。系统时钟的初始化怎么初始化系统时钟呢?很简单,只要用到两个寄存器。 一个是时钟控制命

2016-12-22 13:57:17 1790

原创 通用IO的中断

前言有的人问我,为什么我的博客没有讲有多少引脚,分别是什么之类的问题。我想说的是这些你都可以从官方手册上知道的,本博客只是告诉大家怎么使用罢了。让大家能够更好的理解。接上一篇博客,如何使用中断方式控制灯的闪烁。 中断方式一般有以下几个步骤:设置优先级、使能、判断是否发生中断。第一步,中断优先级的配置已知IP1_X和IP0_X是设置优先级的,其中X是中断优先级组的组名。0的优先级别最低,3的优先级别

2016-12-22 13:45:34 3488

原创 通用IO(二)

前言上期我们讲了通用IO的功能寄存器和方向寄存器的使用。不了解的童鞋可以翻看我的博客,这期我们讲讲配置寄存器的使用。我们已经可以实现灯的闪烁了,但我们不知道怎么控制它不要一直闪烁。这时候我们需要用到的是按键,我们需要检测按键是否按下去了。这时候我们就需要用到配置寄存器。配置寄存器PxINP的配置关于配置,无非就是配置0和1嘛,而配置寄存器配置为0代表上拉/下拉状态。1代表三态 具体配置如下,假设

2016-12-22 13:44:27 879

原创 通用IO(一)

前言学习zigbee,就从最简单的开始。我是从cc2530这块单片机学起的。 废话不多说,我从最简单的io说起。这块单片机的IO分为通用IO和外设IO。什么是通用I/O呢? 我简单的理解为通用I/O是只有输入输出0和1之分的一种IO模式。而外设IO指能实现多,复杂的功能叫做外设IO。当然这种说法肯定是不标准的,具体的说法还请大家查相关手册。我博客只教大家怎么用!通用I/O的使用I/O

2016-12-22 13:42:32 5779

原创 宅男宅女福利--智能聊天(一)

前言晚上寂寞的时候,没有女朋友怎么办?没有男朋友的又怎么度过每月的14号情人节。上陌陌约炮去?还不如自己做个懂我的智能聊天应用–你的寂寞好助手:) 说干就干吧!百度了一下,目前智能聊天Api平台比较出名的有SimSimi和图灵机器人。SimSimi是需要收费的,因此我果断选择图灵机器人。图灵机器人账号的注册和创建都不需要我多说了,接着就是创建机器人了,点击个人中心->我的机器人->创建机器人->自

2016-10-21 20:13:40 26805

原创 android高仿微信布局(二)

前言这期我们讲讲怎么实现微信的左右滑动的效果和底部的tabs栏 废话不多说,开工吧!首先我们先看看总体布局是怎么写的。<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://sche

2016-10-16 17:03:31 336

转载 基于开源框架Glide加载Gif资源图到Android ImageView中

版权声明:本文为Zhang Phil原创文章,欢迎转载!转载请注明出处:http://blog.csdn.net/zhangphil《基于第三方开源框架Android Glide加载Gif资源图片到Android ImageView中》通常Android的ImageView不能加载Gif图片,如不做任何处理,那么加载到ImageView中的Gif只显示第一帧。网上给出很多解决方案,也有不少开源框架

2016-10-14 19:14:55 280

转载 Android加载Gif图片的一般方法:Movie实现

版权声明:本文为Zhang Phil原创文章,欢迎转载!转载请注明出处:http://blog.csdn.net/zhangphilAndroid加载Gif图片的一般方法:Movie实现Android的ImageView无法直接加载Gif图片,如果需要在自己的代码中加载一个gif图片(这很常见,比如下载过程中的loading以示正在下载的转动的圆球),则无法直接用ImageView。鉴于此,And

2016-10-14 19:12:38 493

原创 android高仿微信布局(一)

前言:目前微信是国内使用最火的软件,因此它拥有庞大的用户群体,这点是勿用置疑的。因此我们也仿照一个微信的界面,以此来作为我们app设计的一个参考范例。实现微信上面的标题栏的设计怎么实现微信的标题栏呢?其实android官方已经提供给我们一个工具。叫toolbar。接下来我们讲讲怎么利用toolbar实现微信的标题栏。 首先在styles.xml修改一下把<style name="AppThe

2016-10-14 11:25:23 1634

原创 (Android)基于volley框架的get()和post()请求

一般的客户端都有向服务端请求数据的功能。 Android的app也是如此,于是我们借助了volley这个框架实现数据量较小,处理快的的get()和post()请求。1.将volley包导入到Android Studio中,一般将包放在app目录下的libs目录里。2.编写layout布局。这里我就直接上代码吧。<Button android:onClick="OOKK" andro

2016-09-27 17:12:07 469

转载 README

TimLiu-Android自己总结的Android开源项目及库。 github排名 https://github.com/trending,github搜索:https://github.com/search目录UI UI卫星菜单节选器下拉刷新模糊效果HUD与Toast进度条UI其它动画网络相关响应式编程地图数据库图像浏览及处理视频音频处理测试及调试动态更新热更

2016-09-26 19:01:08 1006

原创 Android6.0权限申请解决方案

在Android6.0需要手动的显示权限的申请。否则无法开启部分敏感的权限。在6.0以下的手机则无需担心这个理由。以下这个解决方案兼容低版本的权限申请,也适合目前主流的6.0的手机。

2016-09-20 22:26:36 904

volley框架包

关于android的volley框架包,能够方便实现get和post的数据请求

2016-09-26

sd卡挂载软件

该软件仅供个人学习用,如需需要请前往Google play购买正版,下载24小时内请删除软件。

2015-12-14

万年历c++代码

适合初级者的万年历代码,功能齐全,可以参考借鉴。

2015-08-11

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

TA关注的人

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