实验要求
代码实现
#include "ioCC2530.h"
#define D3 P1_0
#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
//5.清除中断标志
//发送
UTX0IF = 0;
//接收
URX0IF = 0;
//6.使能串口数据接收完成中断和总中断
URX0IE = 1;
EA = 1;
}
//串口字节发送函数
void URD_SendByte(unsigned char dat)
{
U0DBUF =dat;
while(UTX0IF==0);
UTX0IF=0;
}
//串口数据接受完成中断服务函数
#pragma vector = URX0_VECTOR //起始语句
//中断服务函数
__interrupt void Service_UR0Recv()
{
D3=1;//收
unsigned char temp;
temp=U0DBUF;
temp++;
D5=1;//发
URD_SendByte(temp);
D3=0;
D5=0;
}
void main(void)
{
Set_Clock_32M();
//端口初始化
Init_Prot();
Init_Uart0();
while(1)
{
}
}
关键字:CC2530 串口 数据收发
引用地址:
CC2530串口数据收发
推荐阅读最新更新时间:2024-11-11 11:56
AVR 串口收发 使用循环链表实现的程序源代码
整个工程下载: http://www.rayfile.com/files/062cd042-d7a5-11df-8a51-0015c55db73d/ 关键代码: UART.h: /********** 串口收发循环链表实现 ********** * 版本.........: 1.0 * 作者.........: 陈利栋 * 目标.........: ATmega128 * 文件名.......: UART.h * 编译器.......: IAR for AVR V5.5 * 创建时间.....: 2010.10.14 * 最后修改.....: 2010.10.14 ****************************
[单片机]
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
[单片机]
用RS485代替RS232串口通信新方法
RM(Advanced RISC Machines)是对一类微处理器的通称。ARM是微处理器行业的一家知名企业,它设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。ARM微处理器是一种高性能、低功耗的32位微处理器,该处理器广泛应用于嵌入式系统中。ARM 9代表了ARM公司主流的处理器,已经在手持电话、机顶盒、数码相机、GPS、个人数字助理以及因特网设备等方面有了广泛的应用。在此,以ST公司生产的ARM 9系列中典型的STR912FW44X6芯片作为硬件开发平台的MCU,完成了基于ARM的太阳能发电系统中数据采集与传输系统的硬件设计,并提出了一种利用RS 485串口代替RS 232串121来进行通信的新方法。 l 硬
[嵌入式]
STM32—串口通讯详解
串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式,其通讯协议可分层为协议层和物理层。物理层规定通信协议中具有机械、电子功能的特性,从而确保原始数据在物理媒体的传播;协议层主要规定通讯逻辑,统一双方的数据打包、解包标准。通俗的讲物理层规定我们用嘴巴还是肢体交流,协议层规定我们用中文还是英文交流。下面分析一下串口通讯协议的物理层和协议层。 物理层 1.通讯结构 串口通讯的物理层的主要标准是RS-232标准,其规定了信号的用途、通讯接口及信号的电平标准,其通讯结构如下: 在设备内部信号是以TTL电平标准传输的,设备之间是通过RS-232电平
[单片机]
51单片机实现通过串口用delay延时方式发送一串数据
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: USART ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200713 ---- @ModifiedTime: 20200713 ----
[单片机]
ARM数控系统高速处理串口数据的研究
一、 引言 现代数控加工都是先采用 CAD / CAM 软件画出零件的加工草图,然后根据草图做适当的属性设置,生成G 代码,生成G 代码之后通过某种方式将G 代码传送给数控系统进行解释转化成实际的轴运动。但是由于实际生成的G 代码数据量相对于ARM 嵌入式数控系统 存储 资源而言很大,不可能将G代码全部传给ARM数控系统 存储 起来之后再一条一条来解释、加工,因此在数据传输的过程中应该有一个流量控制的问题。虽然PC 机G 代码到ARM 数控系统代码传送方式很多,但ARM 的串口相对而言,操作方便,因此本设计采用串口来传送数据。虽然串口方便操作,但是在数据传送过程中也存在一些问题,比如说,PC 机向ARM传送9 个数据,却只收到8
[单片机]
用串口修改ARM的IP地址
要修改ARM开发板的IP,如果是yaffs2文件,可以 1、首先要修改/etc/init.d/rcS文件,在/sbin/ifconfig lo 127.0.0.0 下添加一行/sbin/ifconfig eth0 192.168.1.112 up 注:192.168.1.112只是举例,可以改成你想要修改的IP地址 本来这样修改之后就可以的,但是我发现仍然不行,使用ifconfig命令,发现开发板IP地址没有被更改过来。 后来无心插柳,发现还需要修改另一处 2、修改/etc/eth0-setting 将其IP地址改成你想要设置的IP 重启开发板,使用ifconfig命令,就发现IP地址已经修改过来了
[单片机]
PIC18F452+Proteus双机通信 串口通信 键盘更改波特率源程序
系统功能 1、实现双机之间的通信 (1)在主机上通过4*4键盘上的键值“1”“2”“3”设定波特率(2400、4800、9600),发给从机,两者正常通信; (2)从机将采集到的压力信号传到主机,主机通过LCD显示在第一行,我们可以观察到主机的LCD显示的数和从机的保持一致。 (3)主机通过获取按键“5”“6”“7”,改变从机的ADC采样率分别为“10s”“20s”“30s”,由于ADC采样率不易直接观察改变,可将采样率的值通过从机的三个不同颜色的小灯显示。 2、从机通过ADC采样获取压力传感器模拟输出端口的电压值,并将电压值转化为压力值,通过自身的LCD显示; 3、主机获得从机采集的压力值之后,和初始设定的压力值(我设置
[单片机]