CC2530串口接收发送数据

发布者:火星最新更新时间:2016-06-14 来源: eefocus关键字:CC2530  串口接收  发送数据 手机看文章 扫描二维码
随时随地手机看文章
 CC2530 串口接收发送数据(查询法)

#include "ioCC2530.h"


void initUART(void)
{
  PERCFG&=~0x01;
  P0SEL |= 0x0C;
 
  U0CSR |= 0xC0;  //串口接收使能
  U0UCR |= 0x00; //无奇偶校验,1位停止位
 
  U0GCR |= 0x08;
  U0BAUD = 0x3b; //波特率:9600bps  
 
//  IEN0 |=0X04;    //开串口接收中断 'URX0IE = 1',
}

 

void setSysClk(void)
{
  CLKCONCMD&=0xbf;
  asm("NOP");
  asm("NOP");
  asm("NOP");
  CLKCONCMD&=0xc0;
  asm("NOP");
  asm("NOP");
  asm("NOP");
}

void delay(void)
{
  unsigned int i;
  unsigned char j;

 for(i=0;i<500;i++)
  {
   for(j=0;j<200;j++)
    {
     asm("NOP");
     asm("NOP");
     asm("NOP");
    }
  }
}

char receive (void)
{
   char dat;

  while (!URX0IF );
   dat = U0DBUF;
   URX0IF = 0;

  return dat;
}

 

void send(int c)
 
   U0DBUF=c;
   while (!UTX0IF);
   UTX0IF = 0;
}

void main()

  setSysClk();
  initUART();
   
  while(1)
  {
    unsignedchar uartdat;

   uartdat=receive();
   uartdat=~uartdat;
   send(uartdat);
  }
}

 

-----------------------------------------------------

CC2530 串口接收发送(中断法)

#include "ioCC2530.h"


void initUART(void)
{
  PERCFG&=~0x01;
  P0SEL |= 0x0C;
 
  U0CSR |= 0xC0;  //串口接收使能
  U0UCR |= 0x00; //无奇偶校验,1位停止位
 
  U0GCR |= 0x08;
  U0BAUD = 0x3b; //波特率:9600bps  
 
  IEN0 |=0X04;    //开串口接收中断 'URX0IE = 1',
  EA=1;
}

 

void setSysClk(void)
{
  CLKCONCMD&=0xbf;
  asm("NOP");
  asm("NOP");
  asm("NOP");
  CLKCONCMD&=0xc0;
  asm("NOP");
  asm("NOP");
  asm("NOP");
}

void delay(void)
{
  unsigned int i;
  unsigned char j;

 for(i=0;i<500;i++)
  {
   for(j=0;j<200;j++)
    {
     asm("NOP");
     asm("NOP");
     asm("NOP");
    }
  }
}

void send(int c)
 
   U0DBUF=c;
   while (!UTX0IF);
   UTX0IF = 0;
}

void main()

  setSysClk();
  initUART();
   
  while(1)
  {
 
   delay();
   delay();
  }
}


#pragma vector=URX0_VECTOR
__interrupt void URX0_IRQ(void)
 
    charuartdat;
   
//   while(!URX0IF);

 //  URX0IF=0;


   uartdat=U0DBUF;
   uartdat=~uartdat;
   send(uartdat);
 
}

关键字:CC2530  串口接收  发送数据 引用地址:CC2530串口接收发送数据

上一篇:dsPIC33F串口通讯中断接收发送数据UART
下一篇:写一个串口接收发送程序

推荐阅读最新更新时间:2024-03-16 14:57

STM32CubeMX HAL库串口+DMA数据发送不定长度数据接收
参考资料: 1、ST HAL库官网资料 2、https://blog.csdn.net/u014470361/article/details/79206352#comments 一、STM32CubeMX配置外部时钟 注意在进行外部时钟配置时,即“High Speed Clock”和“Low Speed Clock”需配置成“Crytal/Ceramic Resonator(低温/陶瓷谐振器)”不能配置为 BYASS Clock Source(时钟脉冲源) ,否则系统起不来。 二、SWD下载接口配置 如果用HAL库不进行SWD或JTAG配置,单片机只能进行下载一次程序,要进行第二次或更多次程序下载,需要按复位键(如
[单片机]
STM32CubeMX HAL库<font color='red'>串口</font>+DMA<font color='red'>数据</font><font color='red'>发送</font>不定长度<font color='red'>数据</font><font color='red'>接收</font>
51单片机串口通信的发送接收
51单片机的串口,是个全双工的串口,发送数据的同时,还可以接收数据。 当串行发送完毕后,将在标志位 TI 置 1,同样,当收到了数据后,也会在 RI 置 1。 无论 RI 或 TI 出现了 1,只要串口中断处于开放状态,单片机都会进入串口中断处理程序。 在中断程序中,要区分出来究竟是发送引起的中断,还是接收引起的中断,然后分别进行处理。 看到过一些书籍和文章,在串口收、发数据的处理方法上,很多人都有不妥之处。 接收数据时,基本上都是使用 中断方式 ,这是正确合理的。 即:每当收到一个新数据,就在中断函数中,把 RI 清零,并用一个变量,通知主函数,收到了新数据。 发送数据时,很多的程序都是使用的 查询方式 ,就是执行 while(T
[单片机]
STM32 USART串口DMA 接收发送的源码详解!
硬件平台:STM32F103ZET6; 开发环境:KEIL 4; 先说说应用通讯模式,串口终端的工作方式和迪文屏差不多,终端被动接受MCU发的指令,终端会偶尔主动发送一些数据给MCU(像迪文屏的触摸信息上传)。 串口DMA发送: 发送数据的流程: 前台程序中有数据要发送,则需要做如下几件事 1. 在数据发送缓冲区内放好要发送的数据,说明:此数据缓冲区的首地址必须要在DMA初始化的时候写入到DMA配置中去。 2. 将数据缓冲区内要发送的数据字节数赋值给发送DMA通道,(串口发送DMA和串口接收DAM不是同一个DMA通道) 3. 开启DMA,一旦开启,则DMA开始发送数据,说明一下:在KEIL调试好的时候,DMA和调试是
[单片机]
图解单片机网卡RAM区如何发送数据
  本文深入研究了使用单片机控制网卡,接入以太网Ethernet,即IEEE802.3协议网络,实现串口仪器的网络化。   1 硬件结构和电路设计   1.1 总体设计   整个系统设计采用ATMEL公司8位通用微控制器AT89C51作为主处理器,驱动REALTEK公司的10M以太网控制芯片RTL8019AS,实现串口数据和外部网络互连。   1.2 网卡接线设计   RTL8019AS为100管脚PQFP封装,工作电压5V。其接线原理图如图1所示。地址SA0-4接到单片机P2的低五位上;SA8和SA9接电源;其余SA5-7,SA10-19这13个管脚全部接地;IORB和IOWB分别接单片机的读写信号端;RSTDRV接到
[单片机]
图解单片机网卡RAM区如何<font color='red'>发送</font><font color='red'>数据</font>包
STM32串口接收发送子程序
/*上传STM32串口接收发送子程序,调试验证OK,供参考*/ #include STM32_UartImpl.h static UART_HandleTypeDef* pstm32uart_entry = NULL; int STM32_SendBuffer(const char* pcmd); const char* STM32_GetBuffer(void); #define UART__TIMEOUT 500 void WaitSTM32UartReady() { HAL_UART_StateTypeDef status; do { status = HAL_UART_GetState(pstm
[单片机]
#C51串口通讯4-#一串数据#中断即时解析用户自定义协议(握手接收应答)
前言 提示: 1.上一章测试一种方法:简单协议下利用串口中断实时接收数据并校验后进行解析。 2.实际项目开发时,主机下发命令后,从机首先进行握手确认,数据错误情况下要进行相应回应(如错误指令)。 3.本章继续丰富开发,增加主从应答机制 提示:以下是本篇文章正文内容,下面案例可供参考 一、场景 示例: 主机下发命令,从机中断解析并应答,主函数处理事件 二、编程实现 1.自定义协议 如: ##主机类型定义命令类型(查询,设置,器件控制等等) 以控制数码管显示0x01为例 ##从机握手应答: a.数据正确回复:BB66BB8000 b.和校验错误回复:BB66BB8100 c.异或校验错误回复:BB66BB820
[单片机]
#C51<font color='red'>串口</font>通讯4-#一串<font color='red'>数据</font>#中断即时解析用户自定义协议(握手<font color='red'>接收</font>应答)
STM32串口接收数据卡死问题解决办法
在使用STM32串口时,有时候串口接受一段时间数据之后便会卡死不在进入中断接收数据。原因是串口中断标志没有清除,导致终端锁死,此时需要判断对应的标志位,重新启动中断。 if((huart1.Instance- CR1 & 0x20)==0) { HAL_UART_Receive_IT(&huart1,bsp_uart1.rx_tmp,1); }
[单片机]
STM32串口通信中使用printf发送数据配置方法
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 标签: STM32 串口通信 printf方法 2011-06-29 23:29 在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。 下面就说一下使用printf需要做哪些配置。 有两种配置方法: 一、对工程属性进行配置,详细步骤如下 1、首先要在你的main 文件中 包含“stdio.h” (标准输入输出头文件)。 2、在main文件中重定义函数 如下: // 发送数据 in
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved