基于合泰单片机无线鼠标智能小车控制_第1页
基于合泰单片机无线鼠标智能小车控制_第2页
基于合泰单片机无线鼠标智能小车控制_第3页
基于合泰单片机无线鼠标智能小车控制_第4页
基于合泰单片机无线鼠标智能小车控制_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档 1欢迎下载 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 ADDRESS TX ADR WIDTH 0 x34 0 x43 0 x10 0 x10 0 x01 发送地址 uchar RX ADDRESS RX ADR WIDTH 0 x34 0 x43 0 x10 0 x10 0 x01 接收地址 uchar gs 10 0 x00 0 x01 0 x80 0 x01 0 x00 0 x02 0 x80 0 x02 0 x00 0 x03 低字节高字节 占空比数组 1 83 3 66 7 50 33 3 NRF24L01 相关命令的宏定义 define READ REG 0 x00 读寄存器命令 define WRITE REG 0 x20 写寄存器命令 define RD RX PLOAD 0 x61 读取接收数据命令 define WR TX PLOAD 0 xA0 写待发数据指令 define FLUSH TX 0 xE1 冲洗发送 FIFO 指令 define FLUSH RX 0 xE2 冲洗接收 FIFO 指令 define REUSE TX PL 0 xE3 定义重复装载数据命令 define NOP 0 xFF SPI nRF24L01 相关地址的宏定义 define CONFIG 0 x00 精品文档 2欢迎下载 define EN AA 0 x01 define EN RXADDR 0 x02 define SETUP AW 0 x03 define SETUP RETR 0 x04 define RF CH 0 x05 define RF SETUP 0 x06 define STATUS 0 x07 define OBSERVE TX 0 x08 define CD 0 x09 define RX ADDR P0 0 x0A define RX ADDR P1 0 x0B define RX ADDR P2 0 x0C define RX ADDR P3 0 x0D define RX ADDR P4 0 x0E define RX ADDR P5 0 x0F define TX ADDR 0 x10 define RX PW P0 0 x11 define RX PW P1 0 x12 define RX PW P2 0 x13 define RX PW P3 0 x14 define RX PW P4 0 x15 define RX PW P5 0 x16 define FIFO STATUS 0 x17 uuchar TxBuf 2 uchar RxBuf 1 uchar sta uchar m 3 unsigned char IN1 IN2 IN3 IN4 对应芯片如向前 1000 void pwn 1 void car qian void car hou void car zuo void car you void car stop void time init 精品文档 3欢迎下载 void CAR Q void CAR H 延迟函数 ms void delay200ms unsigned int x unsigned int i for i 0 i5 m 5 if m 1 m 1 switch m 精品文档 5欢迎下载 case 1 tm0al 0 x00 tm0ah 0 x01 tm3al 0 x00 tm3ah 0 x01 break case 2 tm0al 0 x80 tm0ah 0 x01 tm3al 0 x80 tm3ah 0 x01 break case 3 tm0al 0 x00 tm0ah 0 x02 tm3al 0 x00 tm3ah 0 x02 break case 4 tm0al 0 x80 tm0ah 0 x02 tm3al 0 x80 tm3ah 0 x02 break case 5 tm0al 0 x00 tm0ah 0 x03 tm3al 0 x00 tm3ah 0 x03 break GCC DELAY 10 time init void Mcu init pas1 0 x00 pac3 0 pas2 0 x00 pac4 0 pas2 0 x00 pac5 0 pas3 0 x00 pac6 0 pa3 6 配置为输出 io 口无线模块配置 pas0 0 x00 pac1 1 papu1 1 pas3 0 x00 pac7 1 papu7 1 pcs1 0 x00 pcc2 0 精品文档 6欢迎下载 写一个字节到 nrf24l01 同时从 nrf24l01 读出一个字节 uchar SPI RW uchar data uchar i temp 0 for i 0 i 8 i output 8 bit if data 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 寄存器 精品文档 7欢迎下载 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 ctr uchars uuchar ctr pBuf uuchar 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 ctr uchars uuchar ctr SPI RW pBuf pa6 1 关闭 SPI return status1 精品文档 8欢迎下载 void SetRX Mode void pa5 0 SPI RW Reg WRITE REG CONFIG 0 x0f IRQ 收发完成中断响应 16 位 CRC 主接收 pa5 1 GCC DELAY 2000 注意不能太小 uchar nRF24L01 RxPacket uchar rx buf uchar revale 0 sta SPI Read STATUS 读取状态寄存其来判断数据接收状况 if sta 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 0 x0e CE 1 delay us 100 精品文档 9欢迎下载 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 0 x01 频道 0 自动 ACK 应答允许 SPI RW Reg WRITE REG EN RXADDR 0 x01 允许接收地址只有频道 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 0 x07 设置发射速率为 1MHZ 发射功率为最 大值 0dB SPI RW Reg WRITE REG CONFIG 0 x0E IRQ 收发完成中断响应 16 位 CRC 主接收 void time init void 保持对应的 I O 口的原来功能 phs0 0 tm0c0 0 x00 增强型 TM 查找 TM1C0 寄存器 4 分频 tm0dl 0 x00 tm0dh 0 x00 tm0c0 0b10010110 7 784M 停止不分频关闭 100 512P 高三位 本来应该 8m 实验测得 7 784M tm0c1 0b10101000 工作模式输出模式高有效同相向上计数 p 匹配双 pwm 输出模式 tm0c2 0b10101000 工作模式输出模式高有效同相边沿对齐 tm0al 0 x80 a tm0ah 0 x02 a tm0c0 运行定时器 tm0c0 1 3 计数器 On 精品文档 10欢迎下载 tm0c0 1 3 计数器 On tm3c0 0 x00 增强型 TM 查找 TM3C0 寄存器 tm3dl 0 x00 tm3dh 0 x00 tm3c0 0b10010110 7 784M 停止不分频关闭 100 512P 高三位 本来应该 8m 实验测得 7 784M tm3c1 0b10101000 工作模式输出模式高有效同相向上计数 p 匹配双 pwm 输出模式 tm3al 0 x80 a tm3ah 0 x02 a tm3c0 运行定时器 tm3c0 1 20 num 0 if zuo 11 zuo 0 car zuo delay200m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论