• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > STC单片机和si4463模块调试

STC单片机和si4463模块调试

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了si4463中文pdf,si4463 pdf,stm32驱动si4463,si4463 wds,si4463 datasheet等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:STC单片机和si4463模块调试
描述:

单片机调试spi si446xstc

单片机STC12LE5A08S2
无线模块si4463
无线模块一直驱动不了求大侠指导
#include "reg51.h"
//#include "radio_config_Si4463.h"
#include <intrins.h>
#define MASTER                  //define:master undefine:slave
#define FOSC        11059200L
#define BAUD        (256 - FOSC / 32 / 2400)
typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef unsigned long DWORD;
sfr  AUXR       =   0x8e;       //Auxiliary register
sfr SPSTAT      =   0xcd;       //SPI status register
#define SPIF        0x80        //SPSTAT.7
#define WCOL        0x40        //SPSTAT.6
sfr SPCTL       =   0xce;       //SPI control register
#define SSIG        0x80        //SPCTL.7
#define SPEN        0x40        //SPCTL.6
#define DORD        0x20        //SPCTL.5
#define MSTR        0x10        //SPCTL.4
#define CPOL        0x08        //SPCTL.3
#define CPHA        0x04        //SPCTL.2
#define SPDHH       0x00        //CPU_CLK/4
#define SPDH        0x01        //CPU_CLK/16
#define SPDL        0x02        //CPU_CLK/64
#define SPDLL       0x03        //CPU_CLK/128
sfr SPDAT       =   0xcf;       //SPI data register
sbit SPISS      =   P1^4;       //SPI slave select, connect to slave' SS(P1.4) pin
sbit Irq = P3^2;
sbit EZRP_SDN = P0^4;
sfr P3M0 = 0xB2; //                                                                         0000,0000
sfr P3M1 = 0xB1; //                                                                         0000,0000
#define SI_CSN_LOW( )   SPISS=0;
#define SI_CSN_HIGH( )  SPISS=1;
#define MAX_CTS_RETRY 2500
void InitUart();
void InitSPI();
void SendUart(BYTE dat);        //send data to PC
BYTE RecvUart();                //receive data from PC
BYTE SPISwap(BYTE dat);         //swap SPI data between master and slave
BYTE bApi_SendCommand(BYTE bCmdLength, BYTE *pbCmdData);
void bSpi_SendDataNoResp(BYTE bCmdLength, BYTE *pbCmdData);
void bSpi_SendDataGetResp(BYTE GetRespLength,BYTE *GetResp);
BYTE vApi_WaitforCTS(void);
BYTE bApi_GetResponse(BYTE bRespLength, BYTE *pbRespData);
void Delay10ms();
void Delay100us();
BYTE abApi_Write[64]={0};
BYTE abApi_Read[64]={0};
void main()
{
BYTE i;
WORD wDelay;
    InitUart();                 //initial UART
    InitSPI();                  //initial SPI
    Irq=1;
// Reset the radio
EZRP_SDN = 1;
// Wait ~300us (SDN pulse width)
for(wDelay=0; wDelay<330; wDelay++);
// Wake up the chip from SDN
EZRP_SDN = 0;
// Wait for POR (power on reset); ~5ms
for(wDelay=0; wDelay<5500; wDelay++);
// Start the radio
for(i=0;i<64;i++)
{abApi_Write[i]=0;}
abApi_Write[0] = 0x02; // Use API command to power up the radio IC
abApi_Write[1] = 0x01; // Write global control registers
abApi_Write[2] = 0x00; // Write global control registers //使用内部晶振
abApi_Write[3] = 0x01; //30M
abApi_Write[4] = 0xc9;
abApi_Write[5] = 0xc3;
abApi_Write[6] = 0x80;
bApi_SendCommand(7,abApi_Write); // Send command to the radio IC
// Wait for boot
while(vApi_WaitforCTS()); // Wait for CTS
// Read CTs, clear pending ones
for(i=0;i<64;i++)
{abApi_Write[i]=0;}
abApi_Write[0] = 0x20; // Use interrupt status command
abApi_Write[1] = 0; // Clear PH_CLR_PEND
abApi_Write[2] = 0; // Clear MODEM_CLR_PEND
abApi_Write[3] = 0; // Clear CHIP_CLR_PEND
bApi_SendCommand(4,abApi_Write); // Send command to the radio IC
for(i=0;i<64;i++)
{abApi_Read[64]=0;}
bApi_GetResponse(8,abApi_Read); // Make sure that CTS is ready, then get&n
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • STC单片机和si4463模块调试

相关文章

  • 2017-06-17嵌入式存储器的设计方法和策略
  • 2017-06-05 8211EGphy芯片问题
  • 2017-06-05 两个硬件连接是如何交互的
  • 2017-06-05 刚刚毕业的大学生,对于未来的前景很迷茫,希望指点!
  • 2017-06-05 一直在搞WINDOWS上的VC开发3年了,想转行做嵌入开发,大家给点意见
  • 2017-06-05 求大神帮忙看一下,vxorks
  • 2017-06-05 菜鸟问一个很简单的问题!
  • 2017-06-05 ALLJOYN支持跨网关通讯么
  • 2017-06-17A/D和D/A转换
  • 2017-06-05 stm32f103串口接收字符串的奇怪问题求教

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • wince启动慢,运行慢的原因?
    • WDK80+VS2012编译驱动的问题
    • 指针的强制转换问题
    • 关于台式机和无线路由器的一个小白问题
    • openwrt:undefinedreferenceto`pthread_create'
    • 有没有网卡驱动中关于流量控制方面的代码?指教!急盼
    • wince平台如何绘制圆弧
    • 完全没接触过驱动,求startup教程。
    • MSP430编程点亮12864端口设置
    • workbench69的DIAB编译器是不是不支持STL库

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有