我是靠谱客的博主 独特绿草,最近开发中收集的这篇文章主要介绍ZigBee CC2530串口通信调试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

刚接触ZigBee,熟悉了一下ZStack协议栈,总算有了点认识。先从调试串口开始,再慢慢开始协议栈代码调试,下面程序已实现发送和接收数据,用的是CC Debugge仿真器和ZigBee最小系统,使用串口还得接个USB转串口设备,我用的是USB转TTL串口,直接贴代码:
包含头文件和系统变量声明部分:

#include <ioCC2530.h>
#include <string.h>
#include"text.h"
char Temp; 
uchar  data = 0;
#define maxfile   100
char readdata[maxfile];
static char datatext[]="串口调试n"; 

主函数部分:

void main(void)
{	
    CLKCONCMD &= ~0x40;               //设置系统时钟源为32MHZ晶振
    while(CLKCONSTA & 0x40);          //等待晶振稳定为32M
    CLKCONCMD &= ~0x47;               //设置系统主时钟频率为32MHZ   
    InitUART();                       //串口初始化
    Uart_SendString(datatext,strlen(datatext));
    while(1)
  { 
        if( Temp != 0) 
        { 
            if((Temp!=' ')&&(data<maxfile))   
           readdata[data++] = Temp; 
           else 
           { 
             U0CSR &= ~0x40;      //禁止接收 
             Uart_SendString(readdata,data); //发送已记录的字符串。
             U0CSR |= 0x40;      //允许接收 
             data = 0;   
            } 
            Temp  = 0;
         }
    }
}

普通延时函数:

void delay(unsigned int i)
{
	unsigned int j;
	for(i=i;i>0;i--)
        for(j=0;j<0x3000;j++);
}

串口初始化函数:

void InitUART(void)
{ 
    PERCFG = 0x00;		      //位置1 P0口
    P0SEL = 0x0c;		      //P0_2,P0_3用作串口(外部设备功能)
    P2DIR &= ~0XC0;                   //P0优先作为UART0

    U0CSR |= 0x80;		      //设置为UART方式
    U0GCR |= 8;				       
    U0BAUD |= 59;		      //波特率设为9600
    UTX0IF = 0;                       //UART0 TX中断标志初始置位0
    U0CSR |= 0X40;                    //允许接收 
    IEN0 |= 0x84;                     // 开总中断,接收中断 
}

数据发送函数:

void Uart_SendString(char *Data,int length)
{
  int j;
  for(j=0;j<length;j++)
  {
    U0DBUF = *Data++;
    while(UTX0IF == 0);
    UTX0IF = 0;
  }
}

中断服务程序:

#if 1
#pragma vector = URX0_VECTOR 
  __interrupt void UART0_ISR(void) 
 { 
  
  URX0IF = 0;    // 清中断标志 
  Temp = U0DBUF;                           
 }
#endif

头文件部分:

#ifndef TEXT_H
#define TEXT_H
typedef unsigned char uchar;
void delay(unsigned int i);
void initUART(void);
void Uart_SendString(char *Data,int length);
#endif

更多技术文章浏览请关注:

百家号:
https://author.baidu.com/home?context=%7B%22app_id%22%3A%221646108714303504%22%7D&wfr=bjh

头条号:
https://www.toutiao.com/c/user/8115738721/#mid=1646025109246987

最后

以上就是独特绿草为你收集整理的ZigBee CC2530串口通信调试的全部内容,希望文章能够帮你解决ZigBee CC2530串口通信调试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部