si4438 的初始化
来源:互联网 发布:java怎么定义函数 编辑:程序博客网 时间:2024/06/06 23:19
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 的初始化
- 关于si4438以往犯的一些错误
- stm32+ucos,si4438调试
- STM32连接射频si4438模块
- 初始化列表的初始化顺序
- 初始化(2)--初始化的方法
- APPCON低成本Si4438 470M电表无线抄表模块
- GD32调试Si4438,SPI通信终于调通
- 类的初始化与对象的初始化
- 类的初始化和对象的初始化
- 内核的初始化和init的初始化
- Java类的初始化、变量的初始化
- 变量的初始化、类的初始化
- 对象数组的初始化 分为 静态初始化 和动态初始化
- 数组的初始化之---静态初始化和动态初始化
- 2410的初始化流程(设备初始化)
- 初始化和未初始化的全局变量
- 复制初始化和直接初始化的区别
- 运算符优先级以及特例
- stringByEvaluatingJavaScriptFromString实现iOS 和jsp交互
- "error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
- Linux下SOAP工具生成ONVIF框架
- 给QDockWidget添加边框
- si4438 的初始化
- JavaScript和HTML事件处理程序属性中的this的含义
- 阿里云部署redis服务器,以及远程访问
- Jlink 命令调试-断点/条件断点
- 递归倒序字符串的方法(1207)
- Android自学——ListView
- spring-xxxJar包
- Android动画之帧动画(三)
- base64加解密源码(可直接调用)