void si4438_Init(){
  
  si446x_reset();
  si446x_part_info();    //进入si4438
  while (SI446X_SUCCESS != si446x_configuration_init(Radio_Configuration_Data_Array)){   //Radio_Configuration_Data_Array  由WDS 产生的头文件生成
    si446x_reset();   //若初始化不成功,则一直初始化
  }
  si446x_get_int_status(0u, 0u, 0u); // 清除标志中获取中断状态/挂起标志
  si446x_set_property(0x12, 0x02, 0x0d, 0x00, 255u);  //发送命令
  vRadio_StartRX(CHANNEL1, 0); //处于接收状态

}

void si446x_reset(void)
{
    U16 loopCount;

radio_hal_AssertShutdown();    //引脚拉高,芯片关闭                                            
    for (loopCount = 1000; loopCount != 0; loopCount--); //延时
    radio_hal_DeassertShutdown(); //引脚拉低,芯片使能
    for (loopCount = 1000; loopCount != 0; loopCount--);  //延时
    radio_comm_ClearCTS();    
}

void radio_hal_DeassertShutdown(void)  //看芯片手册 SDN 管脚   在 管脚初始化的时候  SDN 管脚的初始化不能忘记

{
      GPIO_ResetBits(GPIOB, GPIO_Pin_1);
  }

void radio_hal_AssertShutdown(void)  //看芯片手册 SDN 管脚

{
      GPIO_SetBits(GPIOB, GPIO_Pin_1);
  }

void si446x_part_info(void)
{
    Pro2Cmd[0] = SI446X_CMD_ID_PART_INFO;

radio_comm_SendCmdGetResp( SI446X_CMD_ARG_COUNT_PART_INFO,
                              Pro2Cmd,
                              SI446X_CMD_REPLY_COUNT_PART_INFO,
                              Pro2Cmd );

Si446xCmd.PART_INFO.CHIPREV         = Pro2Cmd[0];
    Si446xCmd.PART_INFO.PART            = ((U16)Pro2Cmd[1] << 8) & 0xFF00;
    Si446xCmd.PART_INFO.PART           |= (U16)Pro2Cmd[2] & 0x00FF;
    Si446xCmd.PART_INFO.PBUILD          = Pro2Cmd[3];
    Si446xCmd.PART_INFO.ID              = ((U16)Pro2Cmd[4] << 8) & 0xFF00;
    Si446xCmd.PART_INFO.ID             |= (U16)Pro2Cmd[5] & 0x00FF;
    Si446xCmd.PART_INFO.CUSTOMER        = Pro2Cmd[6];
    Si446xCmd.PART_INFO.ROMID           = Pro2Cmd[7];
}

void si446x_get_int_status(U8 PH_CLR_PEND, U8 MODEM_CLR_PEND, U8 CHIP_CLR_PEND)
{
    Pro2Cmd[0] = SI446X_CMD_ID_GET_INT_STATUS;
    Pro2Cmd[1] = PH_CLR_PEND;
    Pro2Cmd[2] = MODEM_CLR_PEND;
    Pro2Cmd[3] = CHIP_CLR_PEND;

radio_comm_SendCmdGetResp( SI446X_CMD_ARG_COUNT_GET_INT_STATUS,
                              Pro2Cmd,
                              SI446X_CMD_REPLY_COUNT_GET_INT_STATUS,
                              Pro2Cmd );

Si446xCmd.GET_INT_STATUS.INT_PEND       = Pro2Cmd[0];
    Si446xCmd.GET_INT_STATUS.INT_STATUS     = Pro2Cmd[1];
    Si446xCmd.GET_INT_STATUS.PH_PEND        = Pro2Cmd[2];
    Si446xCmd.GET_INT_STATUS.PH_STATUS      = Pro2Cmd[3];
    Si446xCmd.GET_INT_STATUS.MODEM_PEND     = Pro2Cmd[4];
    Si446xCmd.GET_INT_STATUS.MODEM_STATUS   = Pro2Cmd[5];
    Si446xCmd.GET_INT_STATUS.CHIP_PEND      = Pro2Cmd[6];
    Si446xCmd.GET_INT_STATUS.CHIP_STATUS    = Pro2Cmd[7];
}

si4438 的初始化相关推荐

  1. etcd 笔记(06)— Client 结构定义、客户端(初始化、KV存储Get、Put、事务 Txn、压缩 Compact、Watch、Lease

    1. Client 定义 Client 定义如下: type Client struct {ClusterKVLeaseWatcherAuthMaintenance// 认证的用户名Username ...

  2. Go 知识点(08) — 对未初始化的 channel 进行读写操作

    1. 对未初始化的 channel 进行写操作 先看下面代码 func main() {var ch chan int // 只声明,并没有初始化fmt.Printf("ch is %v\n ...

  3. Go 学习笔记(70)— Go 变量声明、变量初始化、值类型变量赋值、指针类型变量赋值

    1. 变量声明 要单纯声明一个变量,可以通过 var 关键字,如下所示: var s string 该示例只是声明了一个变量 s,类型为 string,并没有对它进行初始化,所以它的值为 string ...

  4. Go 学习笔记(60)— Go 第三方库之 go-redis(初始化 redis、操作 string、操作 list、操作 set、操作 hset)

    1. 第三方库 go-redis 因为 Go 标准库中是没提供 redis 的库,所以我们选择用 go-redis 这个第三方库.源码地址为 https://github.com/go-redis/r ...

  5. Go 学习笔记(55)— Go 标准库 sql (初始化数据库、插入、更新、删除数据库表、单行查询、多行查询、事务处理)

    1. 标准库说明 Go 的标准库中是没有数据库驱动,只提供了驱动接口,有很多第三方实现了驱动,我们这里选择 go-sql-driver 这个实现是目前使用最多的.github 地址是:https:// ...

  6. 派生类参数初始化列表和基类构造函数顺序

    今天被问到了一个问题,随便回了一句,父类还没有构建,怎么能初始化父类的成员. 派生类构造函数的参数初始化列表,为什么不能初始化基类的成员? 例如下面的是不可以的 class Rectangle : p ...

  7. 深度学习——Xavier初始化方法

    20210609 https://blog.csdn.net/u011534057/article/details/51673458 https://blog.csdn.net/luoxuexiong ...

  8. 深度学习的Xavier初始化方法

    在tensorflow中,有一个初始化函数:tf.contrib.layers.variance_scaling_initializer.Tensorflow 官网的介绍为: variance_sca ...

  9. PyTorch 学习笔记(四):权值初始化的十种方法

    pytorch在torch.nn.init中提供了常用的初始化方法函数,这里简单介绍,方便查询使用. 介绍分两部分: 1. Xavier,kaiming系列: 2. 其他方法分布 Xavier初始化方 ...

  10. Pytorch的默认初始化分布 nn.Embedding.weight初始化分布

    一.nn.Embedding.weight初始化分布 nn.Embedding.weight随机初始化方式是标准正态分布  ,即均值$\mu=0$,方差$\sigma=1$的正态分布. 论据1--查看 ...

最新文章

  1. ZBrush全面入门学习教程 Schoolism – Introduction to ZBrush
  2. [IE技巧] 查看HTTP 验证的用户名/密码
  3. linux关闭硬件蜂鸣器,Linux Tips: 如何关闭系统的蜂鸣器
  4. MySQL配置mycat读写分离:wrapper | Startup failed: Timed out waiting for signal from JVM.
  5. 【细节拉满】Hadoop课程设计项目,使用idea编写基于MapReduce的学生成绩分析系统(附带源码、项目文件下载地址)
  6. mysql zpi版的如何配置_Mysql zip版 安装配置
  7. oracle透明网关访问sqlserver_基于智慧照明网关的地下停车场照明解决方案
  8. Winform获取本地IP和外网IP
  9. 计算机网络 MOOC 哈尔滨工程大学 pdf课件
  10. Perl教程-1.Perl简介
  11. 签订保险合同后的事-续保、批单、退保、理赔
  12. 拯救阿拉德大陆--竞码编程H-20‘
  13. Ajax选项卡、隔行换色、弹出遮罩层…
  14. SNF快速开发平台--规则引擎介绍和使用文档
  15. 小象学院python网课值得吗-小象学院python
  16. Eclipse 下载带有WTP 相应插件板本的地址
  17. 用c语言解参数积分,C语言求定积分的通用函数
  18. IDEA 快速复制、剪切当前行
  19. Library Genesis
  20. 苹果7无线网怎么连接电脑连接服务器,iPhone7怎么连接Wifi无线网络?苹果iPhone7 wifi和网络流量自动切换吗?...

热门文章

  1. 网站地图(sitemap)在线生成
  2. 如何用java代码实现隐藏自己的电话号码
  3. 终端一直显示 (master) ,即终端一直处于master分支下的取消办法
  4. 2016计算机考研408答案,2016年计算机408统考考研真题及答案解析.pdf
  5. 金融量化-SMA_移动平均及双均线模型
  6. Matlab底层算法实现图像转置--宽高互换
  7. 利用蒙特卡洛模拟求积分
  8. MDK5软件入门之——基础工程创建及下载和调试
  9. WebSocket之GoEasy框架
  10. 前端之JavaScript入门篇