电工基础知识_电工技术-电工最常见电路移动版

电工基础主页 > 电工电子

cc1101低功耗设计方案 CC1101收发驱动程序(6)


  return status;

  }

  /*************************************************************************************************************************

  * 函数 : u8 CC1101_ReadReg(CC1101_REG_TYPE RegAddr)

  * 功能 : 读取CC1101通用寄存器

  * 参数 : RegAddr:寄存器地址,见:CC1101_REG_TYPE

  * 返回 : 寄存器的值

  * 依赖 : 底层宏定义

  * 作者 : [email protected]

  * 时间 : 2013-12-06

  * 最后修改时间 : 2013-12-06

  * 说明 : 一次读取一个寄存器

  *************************************************************************************************************************/

  u8 CC1101_ReadReg(CC1101_REG_TYPE RegAddr)

  {

  u8 data;

  CC1101_CS_L(); //片选有效

  CC1101_ReadWriteByte((u8)READ_SINGLE|RegAddr); //发送读命令以及寄存器索引

  data = CC1101_ReadWriteByte(0xff); //读取

  CC1101_CS_H(); //片选关闭

  return data;

  }

  /*************************************************************************************************************************

  * 函数 : u8 CC1101_WriteReg(CC1101_REG_TYPE RegAddr, u8 data)

  * 功能 : 写入CC1101通用寄存器

  * 参数 : RegAddr:寄存器地址,见:CC1101_REG_TYPE,data:需要写入的数据

  * 返回 : 状态寄存器的值

  * 依赖 : 底层宏定义

  * 作者 : [email protected]

  * 时间 : 2013-12-06

  * 最后修改时间 : 2013-12-06

  * 说明 : 一次写入一个寄存器,并返回状态

  不要对只读的寄存器进行写操作

  *************************************************************************************************************************/

  u8 CC1101_WriteReg(CC1101_REG_TYPE RegAddr, u8 data)

  {

  u8 status;

  if(RegAddr 》 0x80) return 0; //防止误操作,0x30以后的寄存器为只读状态寄存器

  CC1101_CS_L(); //片选有效

  while(CC1101_GetMISO());

  status = CC1101_ReadWriteByte((u8)WRITE_SINGLE|RegAddr); //发送写命令以及寄存器索引

  CC1101_ReadWriteByte(data); //写入数据

  CC1101_CS_H(); //片选关闭

  return status;

  }

  #include “LED.h”

  void CC1101_Init(u8 Addr)

  {

  //初始化片选

  GPIOx_Init(GPIOA, BIT3, OUT_PP_10M);

  CC1101_CS_H();

  //初始化SCLK (责任编辑:admin)

相关文章