- 博客(11)
- 收藏
- 关注
转载 关于STM32定时器
在使用定时器输出PWM对于时钟源的问题,经过一晚的查资料看手册,貌似有点明白了。对于手册上的这个图,36MHz max这句话令我抓狂了一晚上。后来看到这篇才茅塞顿开。【问题】STM32F103的APB1最大总线时钟是AHB总线时钟的1/2,最大为36MHz,在用ST的库函数(v2.0)的时候,TIM2(普通定时器)的时钟频率为72MHz,不知道原因何在?【问题分
2012-11-06 23:03:19
686
转载 Android 获取屏幕尺寸与密度
android中获取屏幕的长于宽,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得到的结果却为320*533结果很不靠谱,于是自己写了几行代码,亲测一下测试参数:测试环境: i9000(三星)物理屏幕:480*800pxdensity :1.5测试代码: // 获取屏幕密度(方法1)
2012-10-15 13:13:10
722
转载 DFLASH 配置
1、这是直接看网上的程序的。不过有个问题是晚上程序有一个写FCLKDIV = 0x4E,貌似是错的,数据手册上写晶振16M时应设为0x0F。#define READword(address) ((unsigned int)(*(volatile unsigned int *__near)(address)))
2012-08-19 22:07:46
2253
原创 PWM 配置
1、用一个定时器来做时钟分频。具体datasheet,没什么好注意的。#include #define uchar unsigned charuchar PWM0_Set;uchar PWM1_Set;/================= PCA/PWM 特殊功能寄存器定义 ======================/sfr CCON = 0xD8; //PCA控制寄存器s
2012-08-19 02:11:30
2284
原创 US-100超声波 使用
1、只要给Trig端一个大于10us的高电平信号便能使模块工作,然后要做就是等待回波并测其脉宽而已,脉宽时间相当于声波从发射到返回来回的时间,所以 距离=时间*声速/2。#define UT_Trig PORTA_PA0 // 发送触发信号 超声波#define UT_Echo PORTA_PA1 // 接收回响信号uint distance; // 单位: m
2012-08-19 01:21:24
5474
1
原创 nRF24L01无线 使用
1、这东西实测大概也就20米,可能功率放大点会更远点,可是估计差不了多少。#include #include "nRF_define.h"#include "nRF_api.h"#define uchar unsigned char#define uint unsigned intbyte const TX_ADDRESS[TX_ADR_WIDTH] = {0x34, 0x4
2012-08-19 01:10:37
1797
原创 4x4 矩阵键盘
#define KEYIO PT1AD0#define KEYIODDR DDR0AD0//=================== 按键扫描 ======================uchar KeyScan(void) { uchar keyValue = 0; KEYIODDR = 0xFF; //初始化 AD[15:8]输出 KEYIO
2012-08-19 00:51:44
931
原创 ATD 配置
1、ATD 有挺多东西要注意的,用的时候还是看下datasheet 。2、A/D转换时间 = Initial Sample Time(2)+ Programmed Sample Time(可编程)+ Resolution Period(10),其中采样周期ATDCTL4的SMP[1:0]来选择。3、据说xs128 A/D Clock 要在500Hz 到 2MHz这个范围内采样才会准确,但又
2012-08-19 00:45:07
1701
原创 PWM 配置
1、PWM很简单,貌似要注意的就是0、1、4、5路PWM由时钟源A或SA产生,2、3、6、7由B或SB产生。2、还有就是,设置PWM的寄存器时,要先关闭PWM使能PWME,设置完了再开启。3、舵机最好还是级联一下。//-------------- 电机 PWM 输出 50kHz -----------------void PWM_Init(void){ PWMPRCLK
2012-08-19 00:17:43
979
原创 PIT 配置
1、xs128 PIT其实很简单,就是两个8位小定时器,4个16位定时器,然后16位的定时器是在8位小定时器的基础上再去调整的。2、很奇葩也很重要的一点,在清除定时器中断标志位PITTF时若用位寻址是会出错的,这点datasheet上也没提及。 //--------------------- 定时器 -----------------------void PIT_Init(void){
2012-08-19 00:02:24
1260
原创 PLL 配置
1、xs128可稳定超频至总线80MHz。2、我的理解SYNR是倍频,REFDV是分频,由此可以自由调整频率。3、两个nop是给锁相环一个稳定的时间。//----------------- 总线时钟 80MHz -------------------void PLL_Init(void) // 160MHz 总线80MHz{ CLKSEL = 0x
2012-08-18 22:00:44
1161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人