打印

为什么我的CC2530关机后还一直发数据?

[复制链接]
3710|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2021-8-23 11:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
最近在搞CC2530串口接收但不知道怎么回事....关机后串口助手居然一直收到数据
开机后,串口助手才没接收到数据,然后我发什么,它返回什么
我就不理解为什么CC2530关机了,串口助手一直有数据接收到?
[C] 纯文本查看 复制代码
#include <iocc2530.h>#include <string.h>#define uint unsigned int#define uchar unsigned char//定义控制灯的端口#define LED1 P1_0#define LED2 P1_1#define LED3 P0_4void initUART0(void);void InitialAD(void);void UartTX_Send_String(uchar *Data,int len);uchar Recdata[30]="hello zigbee!\r\n";uchar RXTXflag = 1;uchar temp;uint  datanumber = 0;uint  stringlen;/****************************************************************串口发送字符串函数****************************************************************/void UartTX_Send_String(uchar *Data,int len){  int j;  for(j=0;j<len;j++)  {    U0DBUF = *Data++;    while(UTX0IF == 0);    UTX0IF = 0;  }}/****************************************************************初始化串口0函数****************************************************************/void initUART0(void){    CLKCONCMD &= ~0x40;                         //设置系统时钟源为32MHZ晶振    while(CLKCONSTA & 0x40);                    //等待晶振稳定    CLKCONCMD &= ~0x47;                         //设置系统主时钟频率为32MHZ       PERCFG = 0x00;//位置1 P0口    P0SEL = 0x0c;//P0用作串口    P2DIR &= ~0XC0;                             //P0优先作为UART0            U0CSR |= 0x80;//串口设置为UART方式    U0GCR |= 11;    U0BAUD |= 216;//波特率设为115200    UTX0IF = 1;                                 //UART0 TX中断标志初始置位1         U0CSR |= 0X40;//允许接收    IEN0 |= 0x84;//开总中断,接收中断}/****************************************************************主函数****************************************************************/void main(void){P1DIR = 0x03; //P1控制LEDLED1 = 1;LED2 = 1;//关LED        LED3 = 1;initUART0();        stringlen = strlen((char *)Recdata);UartTX_Send_String(Recdata,stringlen);            while(1){          if(RXTXflag == 1)     //接收状态          {                        if( temp != 0)            {                LED2 = 0;     //接收状态指示                if((temp!='#')&&(datanumber<50))     //’#‘被定义为结束字符,最多能接收50个字符                {                            Recdata[datanumber++] = temp;                }                else                {                  RXTXflag = 3;                      //进入发送状态                }                                if(datanumber == 50)                  RXTXflag = 3;                              temp  = 0;            }          }          if(RXTXflag == 3)//发送状态          {            UartTX_Send_String("send:",5);                        LED1 = 0;        //发送状态指示                        U0CSR &= ~0x40;//不能收数            UartTX_Send_String(Recdata,datanumber);            UartTX_Send_String("\r\n",2);            U0CSR |= 0x40;//允许接收                        RXTXflag = 1;        //恢复到接收状态            datanumber = 0;//指针归0            LED1 = 1;        //关发送指示            LED2 = 1;            memset(Recdata, 0, sizeof(Recdata));          }}}/****************************************************************串口接收一个字符:一旦有数据从串口传至CC2530,则进入中断,将接收到的数据赋值给变量temp.****************************************************************/#pragma vector = URX0_VECTOR __interrupt void UART0_ISR(void) { URX0IF = 0;//清中断标志temp = U0DBUF;           //U0DBUF=temp;        datanumber = strlen(temp); }

使用特权

评论回复

相关帖子

沙发
hobbye501| | 2021-8-23 13:00 | 只看该作者
是有电容存电了吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1324

主题

3814

帖子

0

粉丝