CC2530串口数据发送

发布者:SerendipityJoy最新更新时间:2022-10-11 来源: csdn关键字:CC2530  串口  数据发送 手机看文章 扫描二维码
随时随地手机看文章

实验要求

代码实现

#include "ioCC2530.h"

 

#define D5 P1_3

 

//系统时钟切换函数

void Set_Clock_32M()

{

  CLKCONCMD &=~0x40;

  while(CLKCONSTA &0X40)

  {

  

  }

  CLKCONCMD &=~0x47;

}

 

//端口初始化函数

void Init_Prot()

{

//配置4个LED灯的引擎

  //选择端口的功能

  P1SEL &=~0x1B;//设置通用io端口

  //配置端口的方向

  P1DIR |=0x1B;

  //关闭LED灯

  P1 &=~0x1B;

}

 

//串口初始化函数

void Init_Uart0()

{

  //1.设置串口的引脚功能,将P0_2和P0_3设置为外设功能

  PERCFG &=~0X01;

  P0SEL |=0x0C; //0000 1100

  //2.设置串口的波特率:32M——9600

  U0BAUD = 59;

  U0GCR = 8;

  //3.设置一个UART控制寄存器 U0UCR

  U0UCR |=0x80;

  //4.设置控制与状态寄存器 U0CSR

  U0CSR |=0xc0; //1100 0000

}

 

//串口字节发送函数

void URD_SendByte(unsigned char dat)

{

  U0DBUF =dat;//将要发送的数据填入发送缓存寄存器

  while(UTX0IF==0);//等待数据发送完成

  UTX0IF=0; //发送完成后将数据清零 

}

 

//串口字符串发送函数

void URD_SendString(unsigned char *str)

  while(*str !='')

  {

    URD_SendByte(*str++);

  }

}

 

//看门狗的初始化函数:设置为定时器模式,时间周期1s

//初始化一个看门狗控制寄存器

void Init_WDT()

{

  //配置WDTCTL

  WDCTL = 0x0C;//0000 1100

  //IEN2

  IEN2 |= 0x20;

  //打开使能总中断

  EA=1;

}

 

//看门狗定时器1s的中断服务函数

#pragma vector = WDT_VECTOR //起始语句

//中断服务函数

__interrupt void Service_WDT()

  //清除中断标指

  WDTIF = 0;

  D5=1;

  //发送字符串

  URD_SendString("hello wordrn");

  D5=0;

}  

   

 

 

void main(void)

{

  Set_Clock_32M();

  //端口初始化

  Init_Prot();

  Init_Uart0();

  Init_WDT();

  while(1)

  {

   

  }

}


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

上一篇:CC2530串口数据收发
下一篇:CC2530看门狗定时器实现1秒定时

推荐阅读最新更新时间:2024-11-06 19:37

第41节:在串口接收中断里即时解析数据头的特殊程序框架
开场白: 上一节讲了常用的自定义串口通讯协议的程序框架,这种框架在判断一串数据是否接收完毕的时候,都是靠 超过规定的时间内,没有发现串口数据 来判定的,这是我做绝大多数项目的串口程序框架,但是在少数要求实时反应非常快的项目中,这样的程序框架可能会满足不了系统对速度的要求,这一节就是要介绍另外一种响应速度更加快的串口程序框架,要教会大家一个知识点:在串口接收中断里即时解析数据头的特殊程序框架。我在这种程序框架里,会尽量简化数据头和数据尾,同时也简化校验,目的都是为了提高响应速度。 具体内容,请看源代码讲解。 (1)硬件平台: 基于朱兆祺51单片机学习板。 (2)实现功能: 波特率是:9600. 通讯协议:EB GG XX
[单片机]
PC和ATMEGA128串口通信
/*PC和ATMEGA128通信,ATMEGA以轮循方式发送,中断方式接受*/ #include mega128.h #define RXEN0 4 #define TXEN0 3 #define RXCIE0 7 #define UDRE0 5 #define UCSZ00 1 #define UCSZ01 2 #define UCSZ02 2 #define RXC0 7 char str ; unsigned char in; void Uar_init(void); void COM_send(void); interrupt void uart0(void) { bit flag=1; s
[单片机]
labview串口通讯的深入分析.
labview称做 G 语言,只是说明了它具备了通用编程语言的编程能力,但是任何编程语言都有器独特的特点,否则经过几十年的风风雨雨,并没有出现一种编程语言一统天下的格局,每种编程语言都有其特别适合的领域,从这点来说,数据采集和仪器通讯可以说是它最擅长的领域.毫无疑问,计算机的串口通讯是相对比较简单的通讯方式,labview也不例外地对它提供了支持. LABVIEW的串口控制,可以通过多种方法: 1.最基本的IN OUT 控制,LABVIEW提供了In port 和Out Port两个基本输入输出VI,通过它就可以直接读写寄存器,我本人 做的许多并口控制设备就是利用了这两个节点,在计算机的DOS时代,通过IN OUT指令进行串口通讯
[测试测量]
labview<font color='red'>串口</font>通讯的深入分析.
STM32F407串口配置
STM32F407ZG(参考正点原子) 串口配置 一. 串口操作相关库函数(省略入口参数) void USART_Init(); //串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能 void USART_Cmd();//使能串口 void USART_ITConfig();//使能相关中断 void USART_SendData();//发送数据到串口,DR uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据 FlagStatus USART_GetFlagStatus();//获取状态标志位 void USART_ClearFlag(
[单片机]
STM32F407<font color='red'>串口</font>配置
STM8S003F使用I/O口模拟串口(一)发送数据
最近在使用STM8S003F模拟串口发送数据,网上资源很多,但是没有找到我需要的,因此自己写一篇文章,做一个总结,这篇文章主要是不用库函数实现发送简单的过程。 1、串口通信原理和模拟串口发送数据的原理 标准串口数据格式为:起始位(1bit)+数据位(8bit)+校验位(1bit)+停止位(1bit)。其中起始位为低电平,停止位为高电平。 串口通讯需要设置波特率和检查COM口。 思路是这样的,我们使用定时器TIM2来定时,每隔一端时间发送一个位,从而实现模拟串口发送数据。 2、获得定时器ARR自动装载的值 为了简便,我们不要校验位,因此共有10个位的数据。 我以stm8中9600bit/s的波特率计算的过程为例(
[单片机]
RS232串口驱动(C51)
/* RS232 driver */ //#include D:\Design\Programming\RS232.h /*引用地址*/ #include reg51.h #define uchar unsigned char #define uint unsigned int ////////////////////////用户接口/////////////////////////// void RS232_ini(/*uint speed*/); void RS232_send(uchar word); uchar RS232_rec_buffer; //数据接收变量 bit RS232_rec_flag;
[单片机]
查询法串口通信程序
这是一个简单的用查询发的串口通信程序,能吧串口收到的数据马上回发过去。希望读初学者有用. #include reg52.h #define uint unsigned int #define uchar unsigned char void init() { TMOD=0x20;//定时器1方式2作为波特率发生器 TH1=0XF3; //装初值 波特率为4800bps的初值 TL1=0XF3; TR1=1; //启动定时器1 SCON=0X50; //设置串口工作方式为方式1 PCON=0X80; //加倍波特率后为4800 TI=0;//清发送中断标志位 RI=0;//清接收中断标志位 } void main() { u
[单片机]
基于单片机SPI器件的串口控制
   0 引 言   串行外设接口(Serial Peripheral InteRFace,SPI)是一种高速同步串行输入/输出端口,近年来广泛应用于移位寄存器、D/A转换器、A/D转换器、串行E2PROM、LED显示驱动器等外部设备的扩展。SPI接口可以共享,便于组成带多个SPI接口器件的系统。其传送速率可编程,连接线少,具有良好的扩展性。    1 SPI接口介绍   SPI是摩托罗拉公司推出的一种同步串行通信接口,用于微处理器、微控制器和外围扩展芯片之间的串行连接,现已发展成为一种工业标准。目前,各半导体公司推出了大量的带有SPI接口的具有各种各样功能的芯片,如RAM,E2PROM,FLASH ROM,A/D转换器、D
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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