资源简介
需要两个CC2530模块,一个是接收红外波形后解码发送端,另一个是接收显示端(串口显示)。对于NEC红外协议遥控器解码。
代码片段和文件信息
#include “ioCC2530.h“
#include
#include
#define LED P2_0
#define RDATA P1_3 //红外接收口
#define REMOTE_ID 0
#define FLAG (1<<3)
#define u32 unsigned long
#define u8 unsigned char
u32 Remote_Odr=0; //命令暂存处
u8 Remote_Cnt=0; //按键次数此次按下键的次数
u8 Remote_Rdy=0; //红外接收到数据
u8 res=0; //中断变量
u8 OK=0;
u8 RODATA=0;
unsigned int key[4];
u8 bufer[7];
char rf_rx_buf[128];
char serial_rxbuf[128];
char rfbbf[128];
int serial_rxpos = 0;
int serial_rxlen = 0;
char is_serial_receive = 0;
void uart0_init();
void uart0_sendbuf(char *pbuf int len);
void uart0_flush_rxbuf();
void timer1_init();
void timer1_disbale();
void timer1_enable();
u8 zh(u8 *g u8 *d);
/*@@@@@@@@@@@ add @@@@@@@@@@@@@@@@*/
void InitKey();
void rf_send( char *pbuf int len);
void rf_receive_isr();
void uart0_init()
{
CLKCONCMD &= ~0x40; //设置系统时钟源为32MHZ晶振
while(CLKCONSTA & 0x40); //等待晶振稳定
CLKCONCMD &= ~0x47;
PERCFG = 0x00;
P0SEL |= 0x0C;
U0CSR |= 0xC0;
U0GCR |= 11;
U0BAUD = 216; // 115200
UTX0IF = 1;
URX0IE = 1;
}
void uart0_flush_rxbuf()
{
serial_rxpos = 0;
serial_rxlen = 0;
memset(bufer07);
}
void timer1_init()
{
T1CTL = 0x0C;
T1CCTL0 = 0x44;
T1STAT = 0x00;
T1IE = 1;
T1CC0L = 250;
T1CC0H = 0;
}
void timer1_disbale()
{
T1CTL &= ~( 1<< 1);
}
void timer1_enable()
{
T1CTL |= ( 1 << 1 );
T1STAT = 0x00;
T1CNTH = 0;
T1CNTL = 0;
}
void rf_init()
{
FRMFILT0 = 0x0C;
TXPOWER = 0xD5;
FREQCTRL = 0x0B;
CCACTRL0 = 0xF8;
FSCAL1 = 0x00;
TXFILTCFG = 0x09;
AGCCTRL1 = 0x15;
AGCCTRL2 = 0xFE;
TXFILTCFG = 0x09;
RFIRQM0 |= (1<<6);
IEN2 |= (1<<0);
RFST = 0xED;
RFST = 0xE3;
}
void rf_send( char *pbuf int len)
{
RFST = 0xE3;
while( FSMSTAT1 & (( 1<<1 ) | ( 1<<5 )));
RFIRQM0 &= ~(1<<6);
IEN2 &= ~(1<<0);
RFST = 0xEE;
RFIRQF1 = ~(1<<1);
RFD = len + 2;
for (int i = 0; i < len; i++)
{
RFD = *pbuf++;
}
RFST = 0xE9;
while (!(RFIRQF1 & (1<<1)));
RFIRQF1 = ~(1<<1);
RFIRQM0 |= (1<<6);
IEN2 |= (1<<0);
}
void rf_receive_isr()
{
int rf_rx_len = 0;
int rssi = 0;
char crc_ok = 0;
rf_rx_len = RFD - 2;
rf_rx_len &= 0x7F;
for (int i = 0; i < rf_rx_len; i++)
{
rf_rx_buf[i] = RFD;
}
rssi = RFD - 73;
crc_ok = RFD;
RFST = 0xED;
if( crc_ok & 0x80 )
{
if(rf_rx_buf[0] == ‘L‘)
{
uart0_sendbuf( rf_rx_buf rf_rx_len-1);
printf(“[%d]“rssi);
}
else
{
}
}
else
{
printf(“\r\nCRC Error\r\n“);
}
}
void main(void)
{
P2DIR |= 0x01; // P2.0
LED = 1;
EA = 0;
InitKey();
uart0_init();
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 57 2013-07-28 11:09 红外解码无线发送\.hg\00changelog.i
文件 92 2013-08-10 09:03 红外解码无线发送\.hg\cache\branchheads
文件 92 2013-07-31 21:45 红外解码无线发送\.hg\cache\branchheads-served
文件 44 2013-07-31 21:45 红外解码无线发送\.hg\cache\tags
文件 16 2013-08-10 09:06 红外解码无线发送\.hg\cur-message.txt
文件 190 2013-07-31 21:45 红外解码无线发送\.hg\dirstate
文件 116 2013-07-31 21:45 红外解码无线发送\.hg\last-message.txt
文件 33 2013-07-28 11:09 红外解码无线发送\.hg\requires
文件 1023 2013-07-31 21:45 红外解码无线发送\.hg\store\00changelog.i
文件 659 2013-07-31 21:45 红外解码无线发送\.hg\store\00manifest.i
文件 6171 2013-07-31 21:45 红外解码无线发送\.hg\store\data\main.c.i
文件 2097 2013-07-28 11:10 红外解码无线发送\.hg\store\data\_t_r_x.ewd.i
文件 3563 2013-07-28 11:11 红外解码无线发送\.hg\store\data\_t_r_x.ewp.i
文件 193 2013-07-28 11:11 红外解码无线发送\.hg\store\data\_t_r_x.eww.i
文件 64 2013-07-28 11:10 红外解码无线发送\.hg\store\data\~2ehgignore.i
文件 265 2013-07-28 11:11 红外解码无线发送\.hg\store\data\~c7~e5~b3~fd~b9~a4~b3~cc.bat.i
文件 96 2013-07-28 11:11 红外解码无线发送\.hg\store\fncache
文件 43 2013-07-28 11:11 红外解码无线发送\.hg\store\phaseroots
文件 57 2013-07-31 21:45 红外解码无线发送\.hg\store\undo
文件 43 2013-07-31 21:45 红外解码无线发送\.hg\store\undo.phaseroots
文件 2 2013-08-10 17:32 红外解码无线发送\.hg\thgstatus
文件 0 2013-07-31 21:45 红外解码无线发送\.hg\undo.bookmarks
文件 7 2013-07-31 21:45 红外解码无线发送\.hg\undo.branch
文件 9 2013-07-31 21:45 红外解码无线发送\.hg\undo.desc
文件 190 2013-07-31 21:45 红外解码无线发送\.hg\undo.dirstate
文件 0 2013-07-28 11:09 红外解码无线发送\.hgignore
文件 107497 2014-01-17 15:45 红外解码无线发送\Debug\Exe\TRX.d51
文件 51995 2014-01-17 15:45 红外解码无线发送\Debug\Obj\main.r51
文件 146 2014-01-17 15:45 红外解码无线发送\Debug\Obj\TRX.pbd
文件 6876 2014-01-17 15:45 红外解码无线发送\main.c
............此处省略22个文件信息
- 上一篇:基于VHDL的卷积码编解码器的设计
- 下一篇:基于神经网络的印刷体字母数字识别
相关资源
- CC2530协调器源代码
- 单片机红外解码程序源代码非常完整
- CC2530的PCB封装
- CC2530 SW1单击双击 双联继电器测试
- 使用CC2591作为CC2530的功放
- CC2530传感控制系统硬件开发
- cc2530裸机驱动adxl345测试成功
- CC2530-ADXL345 IIC通信
- CC2530-HMC5883L通过I2C通信
- HMC5883_CC2530
- 基于cc2530的酒精串口显示系统
- CC2530 红外接收 zigbee
- CC2530原理图PCB元件库 AD可以用
- cc2530核心板原理图
- cc2530RSSI检测
- CC2530+ESP8266+ONENET_EDP
- CC2530模块电路图
- CC2530+HCSR04超声波测距
- CC2530原理图及PCB封装
- cc2530 ADC例程
- CC2530常用的控制寄存器
- zw_CC2530模块电路原理图和PCB文件.zip
- 详细介绍CC2530开发板电路原理图.pdf
- cc2530原理图
- cc2530 zigbee 智能家居 温湿度dht11 wifi转
- ZigbeeCC2530单片机基础实验 程序代码
- 基于CC2530的SHT11温度传感实验
- zigbee-cc2530 串口收发
- CC2530 I2C 驱动
- 基于CC2530单路PWM控制程序
评论
共有 条评论