WSN之串口
来源:互联网 发布:女狙击手知乎 编辑:程序博客网 时间:2024/05/16 06:22
同步与异步 单工 、半双工和全双工
USART:通用的同步异步收发器
UART:通用的异步收发器
SPI:高速同步串行口
串口的配置步骤:
1、 指定串口模式,串口的IO口位置,SFR 寄存器位 PERCFG.U0CFG 选择是否使用备用位置 1 或备用位置 2。
2、 相应的IO配置成片上外设
3、 8个数据位,1个停止位,无流控,无校验
4、 确定波特率
5、 如果使用接收,那么需要开CPU中断,对应串口的接收中断,接收要使能
流控:提供了由于某种原因不能进行通讯时阻塞通讯的一种机制,流控可以使数据接收设备在不能接收数据时通知数据发送设备,使其停止发送。
UART操作由USART控制和状态寄存器UxCSR以及UART控制寄存器UxUCR 来控制。这里的 x是USART的编号,其数值为 0 或者 1。
由寄存器 UxBAUD.BAUD_M[7:0]和 UxGCR.BAUD_E[4:0]定义波特率。
#include <ioCC2530.h>#include <string.h>void Init_32M(){ CLKCONCMD &=~ (1 << 6); CLKCONCMD &= ~0x07; while(CLKCONSTA & 0x40); // 等待系统时钟稳定}void Init_UART0(){ PERCFG &= ~0x01; //选用串口0备用位置1 U0CSR |= (1 << 7);//选择UART模式 P0SEL |= 0x0c;//将P0_2 P0_3 设置成片上外设 U0BAUD = 59; U0GCR = 8; //以上两句将波特率设置为9600}void main(){ Init_32M(); Init_UART0(); char string[] = "hello world\n"; int i; for(i = 0;i < strlen(string);i++) { U0DBUF = string[i]; while(UTX0IF == 0);//如果数据没有发送出去就等待 UTX0IF = 0;//清除发送中断标志位 }}
#include <ioCC2530.h>#include <string.h>#define LED1 P1_0#define LED2 P1_1void Init_32M(){ CLKCONCMD &=~ (1 << 6); CLKCONCMD &= ~0x07; while(CLKCONSTA & 0x40); // 等待系统时钟稳定}void Init_UART0(){ PERCFG &= ~0x01; //选用串口0备用位置1 U0CSR |= (1 << 7) | (1 << 6);//选择UART模式,接收使能 P0SEL |= 0x0c;//将P0_2 P0_3 设置成片上外设 U0BAUD = 59; U0GCR = 8; //以上两句将波特率设置为9600 URX0IE = 1;//接收器中断使能 EA = 1;//开CPU总中断}void main(){ Init_32M(); Init_UART0(); P1DIR |= 0x03; LED1 = 0; LED2 = 0; while(1); }/*发送0时,D1、D2灭;发送1时,D1亮;发送2时,D2亮;发送3时,D1、D2亮*/char ch = -1;#pragma vector = URX0_VECTOR__interrupt void ISR_RX0(void){ ch = U0DBUF - '0'; if(ch == 0) { LED1 = 0; LED2=0; } if(ch == 1) { LED1 = 1; LED2=0; } if(ch == 2) { LED1 = 0; LED2=1; } if(ch == 3) { LED1 = 1; LED2=1; } URX0IF = 0;}
阅读全文
0 0
- WSN之串口
- wsn之--地铁
- WSN之SCI
- WSN之中断
- WSN 之定时器1
- WSN
- wsn
- WSN之振荡器和时钟
- WSN之DHT11温湿度传感器
- 实训之WSN(一)
- 实训之WSN(二)
- [Contiki系列论文之2]WSN的自适应通信架构
- WSN Overview
- WSN学习计划
- WSN术语
- wsn笔记
- WSN资源
- WSN覆盖率
- 关于 Android studio的Gradle 那些坑
- MySQL优化实例
- MyBatis 原理浅析 3——数据操作
- String、StringBuffer与StringBuilder之间区别
- 凸优化学习笔记(三)之凸集基本概念
- WSN之串口
- iOS 安卓 服务器后台 公用的简单加密和解密
- MovieLens 《用Python进行数据分析》
- 【JavaWeb-30】SpringMVC原理、入门程序、参数传递
- 自定义VideoView实现视频画面的缩放
- 'getDrawable(int)' is deprecated,getDrawable过时
- git上传代码至github
- 代码优化, volatile关键字
- input.py