• 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
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > cc2530无线点对点通信,不用协议栈,直接操作寄存器实现。

cc2530无线点对点通信,不用协议栈,直接操作寄存器实现。

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

佚名通过本文主要向大家介绍了cc2530点对点通信,cc2530点对点无线通信,点对点通信,点对多点通信,zigbee点对点通信等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:cc2530无线点对点通信,不用协议栈,直接操作寄存器实现。
描述:

本帖最后由 mhsjmm 于 2015-06-10 21:47:53 编辑

c语言通信软件数据栈

各位仁兄,我想通过最底层的寄存器操作,在节点1上发送数据,在节点2上通过中断读取数据。(不使用协议栈)可是,现在的问题是,程序运行到  while (!(RFIRQF1 &(1<<1) ));  就不向下执行了,难道是没发送成功?各位有没有知道原因的,麻烦解释下,谢谢了~~点对点通信,zigbee点对点通信,cc2530点对点通信,websocket 点对点通信,android点对点通信,wifi点对点通信,java点对点通信,zigbee点对点通信程序,gprs点对点通。附上节点1程序,节点2差不多,就多一个点亮LED的程序。
#include "ioCC2530.h"
char rf_rx_buf[128];
char serial_rxbuf[128];       // 串口接收缓冲区
int  serial_rxpos = 0;
int  serial_rxlen = 0;
char is_serial_receive = 0;
void uart0_init();
void uart0_sendbuf(char *pbuf , int len);
void uart0_flush_rxbuf();
void rf_send( char *pbuf , int len);
void rf_receive_isr();
void uart0_init()
{
    PERCFG = 0x00;              // UART0 选择位置0 TX@P0.3 RX@P0.2
    P0SEL |= 0x0C;              // P0.3 P0.2选择外设功能
    U0GCR |= 10;                // 查表获得 U0GCR 和 U0BAUD
    U0BAUD |= 216;               // 57600
    U0CSR |= 0xC0;              // UART模式 接收器使能
   
    //UTX0IF = 1;
    URX0IE = 1;                 // 使能接收中断 IEN0@BIT2
}
void uart0_flush_rxbuf()
{
    serial_rxpos = 0;
    serial_rxlen = 0;
}
void rf_init()
{   
    TXPOWER   = 0xD5;                 // 发射功率为1dBm
    //FRMCTRL0 |= (0x20 | 0x40); /* AUTO_ACK | AUTO_CRC */
    CCACTRL0  = 0xF8;                 // 推荐值 smartRF软件生成
    FRMFILT0 = 0x0c;                 // 静止接收过滤,即接收所有数据包
    FSCAL1 =    0x00;                 // 推荐值 smartRF软件生成
    TXFILTCFG = 0x09;
    AGCCTRL1 =  0x15;
   //AGCCTRL2 =  0xFE;
    //TXFILTCFG = 0x09;                 // 推荐值 smartRF软件生成
    FREQCTRL = 0x0B;                  // 选择通道11
    RFIRQM0 |= (1<<6);                // 使能RF数据包接收中断
    IEN2 |= (1<<0);                   // 使能RF中断
    RFST = 0xED;                      // 清除RF接收缓冲区 ISFLUSHRX
    RFST = 0xE3;                      // RF接收使能 ISRXON 
}
void rf_send( char *pbuf , int len)
{
    RFST = 0xE3;                      // RF接收使能 ISRXON
    
    while( FSMSTAT1 & (( 1<<1 ) | ( 1<<5 )));// 等待发送状态不活跃 并且 没有接收到SFD
    RFIRQM0 &= ~(1<<6);               // 禁止接收数据包中断
    IEN2 &= ~(1<<0);                  // 清除RF全局中断
    RFST = 0xEE;                      // 清除发送缓冲区 ISFLUSHTX
    RFIRQF1 = ~(1<<1);                // 清除发送完成标志
    // 填充缓冲区 填充过程需要增加2字节,CRC校验自动填充
    RFD = len + 2;
    for (int i = 0; i < len; i++)
    {
        RFD = *pbuf++;
    }
    RFST = 0xE9;                      // 发送数据包 ISTXON
    while (!(RFIRQF1 &(1<<1) ));      // 等待发送完成
    P0_0 = ~P0_0;
    RFIRQF1 = ~(1<<1);                // 清除发送完成标志位
   
    RFIRQM0 |= (1<<6);                // RX接收中断
    IEN2 |= (1<<0);
}
void rf_receive_isr()
{
    int rf_rx_len = 0;
    char r[1] = {0};
    char crc_ok = 0;
    rf_rx_len = RFD&
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

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

  • cc2530无线点对点通信,不用协议栈,直接操作寄存器实现。

相关文章

  • 2017-06-05 现在我有一个关于使用usb设备的问题
  • 2017-06-05 添加WindML组件后,编译出现错误:make:[prjConfigo]Error0x1
  • 2017-06-05 同一个型号的机器人DH参数是一定的吗?
  • 2017-06-05 旋转编码开关和万用表
  • 2017-06-05 WIN10系统显示出来的数字和字母都加粗了,怎么样才能设置让它不加粗?
  • 2017-06-05 CubeMX怎么生成STM32F2的DFU代码?
  • 2017-06-05 udp协议UDP计算检验和的时候为什么要加上伪首部?
  • 2017-06-05 枚举音频设备
  • 2017-09-12ARM中状态转移指令+条件执行+内存操作
  • 2017-06-05 cc2640从机如何自动使能notify功能?

文章分类

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

最近更新的内容

    • 地图匹配方面的问题请教大神
    • 嵌入式软件开发大讨论:另外,一般的开发人员的工资能否达到6K以上?干嵌入式能干到几岁?
    • 求i2c转串口芯片型号
    • 蓝牙适配器接收蓝牙设备主动发送的数据(仿串口)
    • 请各位大侠求命,关于安装inf
    • fseek函数使用时vmstat显示bi高,且引起wa过高
    • WinCEIntelPAX255BI2C和RTC372A通讯调试,,大侠来了!!!!
    • at91sam9263linux的文件系统出了问题,貌似跟nandflash有关,不知道从哪下手,希望各位有经验的给提供帮助,谢谢。
    • 现在公司要开发mp3产品,小弟我开发过时钟蕊片驱动但没有开发mp3的经验,不知道需要哪方面的知识?
    • 关于lua产生随机数的问题

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

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