已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include HT66FU70A.h#define uchar unsigned char#define uint unsigned int#define led _pc2 /led/*NRF24L01端口宏定义*/#define MOSI _pa3/MOSI/#define SCK _pa4/SCK/#define CE _pa5 /CE/#define CSN _pa6 /CSN/#define MISO _pa1/MISO输入/#define IRQ _pa7 /IRQ输入/*NRF24L01*#define TX_ADR_WIDTH 5 / 5 字节宽度的发射地址#define RX_ADR_WIDTH 5 / 5 字节宽度的接收地址#define TX_PLOAD_WIDTH 1 / 数据通道有效数据宽度#define RX_PLOAD_WIDTH 1 / 数据通道有效数据宽度uchar TX_ADDRESSTX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01; /发送地址uchar RX_ADDRESSRX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01; /接收地址uchar gs10=0x00,0x01,0x80,0x01,0x00,0x02,0x80,0x02,0x00,0x03;/低字节高字节 占空比数组 1,83.3,66.7,50,33.3/*NRF24L01相关命令的宏定义*#define READ_REG 0x00 / 读寄存器命令#define WRITE_REG 0x20 / 写寄存器命令#define RD_RX_PLOAD 0x61 / 读取接收数据命令#define WR_TX_PLOAD 0xA0 / 写待发数据指令#define FLUSH_TX 0xE1 / 冲洗发送FIFO指令#define FLUSH_RX 0xE2 / 冲洗接收FIFO指令#define REUSE_TX_PL 0xE3 / 定义重复装载数据命令#define NOP 0xFF / ?/*SPI(nRF24L01)相关地址的宏定义*#define CONFIG 0x00 #define EN_AA 0x01 #define EN_RXADDR 0x02 #define SETUP_AW 0x03 #define SETUP_RETR 0x04 #define RF_CH 0x05 #define RF_SETUP 0x06 #define STATUS 0x07 #define OBSERVE_TX 0x08 #define CD 0x09 #define RX_ADDR_P0 0x0A #define RX_ADDR_P1 0x0B #define RX_ADDR_P2 0x0C #define RX_ADDR_P3 0x0D #define RX_ADDR_P4 0x0E #define RX_ADDR_P5 0x0F #define TX_ADDR 0x10 #define RX_PW_P0 0x11 #define RX_PW_P1 0x12 #define RX_PW_P2 0x13 #define RX_PW_P3 0x14 #define RX_PW_P4 0x15 #define RX_PW_P5 0x16 #define FIFO_STATUS 0x17 /uuchar TxBuf2=;uchar RxBuf1;/*uchar sta;uchar m=3; unsigned char IN1,IN2,IN3,IN4;/对应芯片如向前1000void pwn_1();void car_qian();void car_hou();void car_zuo();void car_you();void car_stop();void time_init();void CAR_Q();void CAR_H();/*延迟函数ms*/void delay200ms(unsigned int x)unsigned int i;for(i=0;i5)m=5;if(m1)m=1;switch(m)case 1: _tm0al = 0x00;_tm0ah = 0x01; _tm3al = 0x00; _tm3ah = 0x01;break;case 2: _tm0al = 0x80;_tm0ah = 0x01; _tm3al = 0x80; _tm3ah = 0x01;break;case 3: _tm0al = 0x00;_tm0ah = 0x02; _tm3al = 0x00; _tm3ah = 0x02;break;case 4: _tm0al = 0x80;_tm0ah = 0x02; _tm3al = 0x80; _tm3ah = 0x02;break;case 5: _tm0al = 0x00;_tm0ah = 0x03; _tm3al = 0x00; _tm3ah = 0x03;break;GCC_DELAY(10);time_init();void Mcu_init()_pas1=0x00;_pac3=0;_pas2=0x00;_pac4=0;_pas2=0x00;_pac5=0;_pas3=0x00;_pac6=0; /pa3-6 配置为输出io口无线模块配置_pas0=0x00;_pac1=1;_papu1=1;_pas3=0x00;_pac7=1;_papu7=1;_pcs1=0x00;_pcc2=0; /写一个字节到nrf24l01,同时从nrf24l01读出一个字节/*uchar SPI_RW(uchar data) uchar i,temp=0; for(i=0;i8;i+) / output 8-bit if(data & 0x80)=0x80) _pa3=1; / output uuchar, MSB to MOSI else _pa3=0; data = (data 1); / shift next bit into MSB. temp=1; _pa4=1; / Set SCK high. if(_pa1=1)temp+; / capture current MISO bit xiugai pa1 _pa4=0; / .then set SCK low again return(temp); / return read uuchar/从reg寄存器读一个字节/*uchar SPI_Read(uchar reg) uchar reg_val; _pa6=0; / CSN low, initialize SPI communication. SPI_RW(reg); / Select register to read from. reg_val = SPI_RW(0); / .then read registervalue _pa6=1; / CSN high, terminate SPI communication return(reg_val); / return register value/写数据到reg寄存器/*uchar SPI_RW_Reg(uchar reg, uchar value) uchar status1; _pa6=0; / CSN low, init SPI transaction status1 = SPI_RW(reg); / select register SPI_RW(value); / .and write value to it. _pa6=1; / CSN high again return(status1); / return nRF24L01 status uuchar/用于读数据/*uchar SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars) uchar status2,uuchar_ctr; _pa6=0; / Set CSN low, init SPI tranaction status2 = SPI_RW(reg); / Select register to write to and read status uuchar for(uuchar_ctr=0;uuchar_ctruchars;uuchar_ctr+) pBufuuchar_ctr = SPI_RW(0); _pa6=1; return(status2); / return nRF24L01 status uuchar/用于写数据 /*uchar SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars) uchar status1,uuchar_ctr; _pa6=0; /SPI使能 status1 = SPI_RW(reg); for(uuchar_ctr=0; uuchar_ctruchars; uuchar_ctr+) SPI_RW(*pBuf+); _pa6=1; /关闭SPI return(status1);void SetRX_Mode(void) _pa5=0; SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); / IRQ收发完成中断响应,16位CRC,主接收 _pa5=1; GCC_DELAY(2000); /注意不能太小uchar nRF24L01_RxPacket(uchar* rx_buf) uchar revale=0; sta=SPI_Read(STATUS); / 读取状态寄存其来判断数据接收状况 if(sta&0x40) / 判断是否接收到数据 _pa5=0; /SPI使能 SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH); / read receive payload fromRX_FIFO buffer revale =1; /读取数据完成标志 SPI_RW_Reg(WRITE_REG+STATUS,sta); /接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标志 return revale;/发送tx-buf中数据/*void nRF24L01_TxPacket(uuchar *tx_buf) CE=0 ; SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); CE=1; delay_us(100);*/void init_NRF24L01(void) GCC_DELAY(250); _pa5=0 ; / chip enable _pa6=1; / Spi disable _pa4=0; / Spi clock line init high SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); / 写本地地址 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); / 写接收端地址 SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); / 频道0自动 ACK应答允许 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允许接收地址只有频道0,如果需要多频道可以参考Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 0); / 设置信道工作为2.4GHZ,收发必须一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /设置接收数据长度,本次设置为32字节 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); /设置发射速率为1MHZ,发射功率为最大值0dB SPI_RW_Reg(WRITE_REG + CONFIG, 0x0E); / IRQ收发完成中断响应,16位CRC ,主接收void time_init(void)/保持对应的I/O口的原来功能 _phs0 = 0; _tm0c0 = 0x00; /增强型TM(查找TM1C0寄存器),4分频 / _tm0dl = 0x00;/ _tm0dh = 0x00;_tm0c0=0b10010110; /7.784M 停止不分频关闭100 512P高三位 本来应该8m实验测得7.784M_tm0c1=0b10101000; /工作模式输出模式高有效同相向上计数(p匹配双pwm输出模式)/ _tm0c2=0b10101000;/工作模式输出模式高有效同相边沿对齐/_tm0al = 0x80;/a/_tm0ah = 0x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年儿童青少年近视防控资格证考试儿童青少年近视防控倒睫处理与视力影响考核试卷
- 2025年公共交通行业智能交通控制系统分析报告
- 2025年互联网金融行业数字货币与金融科技融合研究报告及未来发展趋势预测
- 2025年航天科技行业航天器材创新技术研究报告及未来发展趋势预测
- 2025年全国交通运输行业多车型叉车维护考核试卷
- 2026年中国铁路呼和浩特局集团有限公司招聘高校毕业生1261人(二)笔试考试备考题库及答案解析
- 2025云南省小龙潭监狱招聘6人考试笔试备考题库及答案解析
- 2025安徽宿州市第四人民医院(宿马医院)(浙江大学医学院附属第一医院宿州分院)引进专业技术人才34人笔试考试备考试题及答案解析
- 2026广东能源集团校园招聘笔试考试参考试题及答案解析
- 2025年11月广东广州市天河区童睿幼儿园编外聘用制专任教师招聘1人考试笔试参考题库附答案解析
- JJF 2137-2024 表面铂电阻温度计校准规范
- 夜间施工专项施工方案
- 铲车堆场服务技术方案
- 介绍哈萨克族的课件
- 劳动教育-专题一崇尚劳动(劳动的意义)
- 浙江省杭州市杭州中学2023-2024学年九年级上学期期中科学试卷
- 新版入团志愿书表格(含申请书范本)
- 浅圆仓外立面整体环状吊篮施工工法
- 计算机考试题目及答案计算机考试选择题
- GB/T 10003-2008普通用途双向拉伸聚丙烯(BOPP)薄膜
- 陕西西北工业大学电子信息学院党务秘书公开招聘1人【共500题附答案解析】模拟检测试卷
评论
0/150
提交评论