CC2530学习路线-基础实验-串口通讯发送字符串(4 未完待续)
1. 前期预备知识
1.1 串口通讯电路图

从上图可见,CC2530芯片通过P0端口的P0.1和P0.2引脚进行串口通讯。这个实验当中对于端口的操作也主要就是P0端口。
1.2 实验相关寄存器
| 寄存器名称 | 作用 | 寄存器描述 |
|---|---|---|
| U0CSR (0x86) | USART 0控制和状态 | bit7:USART模式选择 0:SPI模式;1:UART模式 bit6:UART接收器使能 0:禁用接收器;1:接收器使能 bit5:SP主或从模式选择 0:SPI主模式;1:SPI从模式 bit4:UART帧错误状态 0: 无帧错误检测;1: 字节收到不正确停止位级别 bit3:UART奇偶错误状态 0: 无奇偶错误检测;1: 字节收到奇偶错误 bit2:接收字节状态 0: 没有收到字节;1: 准备好接收字节 bit1 :传送字节状态 0:字节没有被传送;1:写到数据缓存寄存器的最后字节被传送 bit0:USART传送/接收主动状态、在SPI从模式下该位等于从模式选择 0: USART空闲;1: 在传送或者接收模式USART忙碌; |
| U0GCR (0xC5) | USART0 通用控制 | Bit[7] CPOL SPI 的时钟极性 0: 负时钟极性 1: 正时钟极性 Bit[6] CPHA SPI 时钟相位 0: 当SCK 从CPOL 倒置到CPOL 时数据输出到MOSI, 并且当SCK 从CPOL倒置到CPOL 时数据输入抽样到MISO。 1: 当SCK 从CPOL 倒置到CPOL 时数据输出到MOSI,并且当SCK 从CPOL倒置到CPOL 时数据输入抽样到MISO Bit[5] ORDER 传送位顺序 0: LSB 先传送 1: MSB 先传送 Bit[4:0] BAUD_E 波特率指数值。BAUD_E 和 BAUD_M 决定了UART 波特率和SPI 的主SCK 时钟频率 |
| U0BAUD (0xC2) | USART 0 波特率控制 | BAUD_M[7:0] 波特率小数部分的值。BAUD_E和BAUD_M决定了UART的波特率和SPI的主SCK时钟频率 |
| U0DBUF | USART 0接收/发送数据缓存 | |
| UTX0IF(发送中断标志) | IRCON2 Bit1 | USART 0 TX中断标志0: 无中断未决 1: 中断未决 |
| CLKCONCMD | 时钟控制命令 | Bit[7] OSC32K 32 kHz 时钟振荡器选择0 : 32 kHz XOSC 1 : 32 kHz RCOSC Bit[6] OSC 系统时钟源选择0 : 32 MHz XOSC1 : 16 MHz RCOSC Bit[5:3] TICKSPD 定时器标记输出设置 000 :32 MHz 001 :16 MHz 010 :8 MHz 011 :4 MHz 100 :2 MHz 101 :1 MHz 110 :500 kHz 111 :250 kHz Bit[2:0] CLKSPD 时钟速度 000 :32 MHz 001 :16 MHz 010 :8 MHz 011 :4 MHz 100 :2 MHz 101 :1 MHz 110 :500 kHz 111 :250 kHz |
| CLKCONSTA | CLKCONSTA寄存器是一个只读寄存器,用来获得当前时钟状态 |
1.2 常用波特率设置
由寄存器 UxBAUD.BAUD_M[7:0]和 UxGCR.BAUD_E[4:0]定义波特率。该波特率用于 UART 传送,也用于 SPI 传送的串行时钟速率。波特率由下式给出:

F 是系统时钟频率,等于 16 MHz RCOSC 或者 32 MHz XOSC。 32 MHz 系统时钟常用的波特率设置:
| 波特率(bps) | UxBAUD.BAUD_M | UxGCR.BAUD_E | 误差(%) |
|---|---|---|---|
| 2400 | 59 | 6 | 0.14 |
| 4800 | 59 | 7 | 0.14 |
| 9600 | 59 | 8 | 0.14 |
| 14400 | 216 | 8 | 0.03 |
| 19200 | 59 | 9 | 0.14 |
| 28800 | 216 | 9 | 0.03 |
| 38400 | 59 | 10 | 0.14 |
| 57600 | 216 | 10 | 0.03 |
| 76800 | 59 | 11 | 0.14 |
| 115200 | 216 | 11 | 0.03 |
| 230400 | 216 | 12 | 0.03 |
本章未完待续..... 原来写的文章已经丢失了,只能找到这一小部分,看什么时候有时间再补上。
CC2530学习路线-基础实验-串口通讯发送字符串(4 未完待续)的更多相关文章
- CC2530学习路线-基础实验-定时器控制LED灯亮灭(3)
目录 1. 前期预备知识 1.1 定时器中断触发 1.2 相关寄存器 1.3 寄存器相关问题 1.4 T1.T3定时器初始化流程 2 程序及代码 THE END 1. 前期预备知识 1.1 定时器中断 ...
- CC2530学习路线-基础实验-GPIO 按键控制LED灯亮灭(2)
目录 1.前期预备知识 1.1 新大陆Zigbee模块按键电路图 1.2 CC2530相关寄存器 1.3 CC2530中断走向图 1.4 使用C语言为51单片机编写中断程序 1.5 *函数指针 2. ...
- CC2530学习路线-基础实验-GPIO 控制LED灯亮灭(1)
目录 1.前期预备知识 1.1 新大陆ZigBee模块LED灯电路 1.2 CC2530相关寄存器 1.3 寄存器操作技巧 1.4 CPU空转延时 1.4 操作流程图 2.程序代码 The End 1 ...
- Go web编程学习笔记——未完待续
1. 1).GOPATH设置 先设置自己的GOPATH,可以在本机中运行$PATH进行查看: userdeMacBook-Pro:~ user$ $GOPATH -bash: /Users/user/ ...
- 2017-2-17,c#基础,输入输出,定义变量,变量赋值,int.Parse的基础理解,在本的初学者也能看懂(未完待续)
计算机是死板的固定的,人是活跃的开放的,初学c#第一天给我的感觉就是:用人活跃开放式的思维去与呆萌的计算机沟通,摸清脾气,有利于双方深入合作,这也是今晚的教训,细心,仔细,大胆 c#基础 1.Hell ...
- Java开发中的23+2种设计模式学习个人笔记(未完待续)
注:个人笔记 一.设计模式分三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模 ...
- Java学习路线-基础篇!
下面以黑马程序员Java学院的学习路线为例,进行一次史无前例的剖析,我会采取连载的形式,细致的讲解零基础的人怎么学习Java.先看下Java在基础阶段的知识点路线图. 内容多吗?不要被吓到了,知识点剖 ...
- 【单片机入门】(三)应用层软件开发的单片机学习之路-----UART串口通讯和c#交互
引言 在第一章博客中,我们讲了Arduino对Esp32的一个环境配置,以及了解到了常用的一个总线通讯协议,其中有SPI,IIC,UART等,今天我为大家带来UART串口通讯和c#串口进行通讯的一个案 ...
- 疯狂Java:突破程序员基本功的16课-李刚编著 学习笔记(未完待续)
突破程序员基本功(16课) 数组 静态语言: 在编译的时候就能确定数据类型的语言,大多静态语言要求在使用变量之前必须声明数据类型(少数具有强推导能力的现代语言不用) 动态语言: 在程序运行时确定数据类 ...
随机推荐
- 测试SQL
create database testDB create table users( id int primary key identity(1,1), uname nvarchar(20 ...
- php5.4 trait 理解与学习
Trait 是 php5.4引入的新特性,手册上说的一大段没看懂,这里直接来过来. Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制.Trait 为了减少单继承语言的限制,使开发人员 ...
- linux整合apache、php、mysql
1.打开apache配置文件,添加AddType.找到DirectoryIndex并添加index.php AddType application/x-httpd-php .php AddType a ...
- struts框架问题四之获取到值栈的对象
4. 问题四 : 如何获得值栈对象 * 获得值栈对象 有三种方法 * ValueStack vs1 = (ValueStack) ServletActionContext.getRequest().g ...
- js和jquery获取span里面的值
JQ和Js获取span标签的内容 html: 1 <span id="content">‘我是span标签的内容’</span> javascript获取: ...
- Mysql的内存优化
老师 vi mysqld_safe# executing mysqld_safe 后面增加export LD_PRELOAD=/usr/local/lib/libtcmalloc.so 可以做一 ...
- 品味性能之道<十>:Oracle Hint
Hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式. 因为Hint的特殊作用,所以对于开发人员不应该在代码中使用它,Hint 更像是Ora ...
- Socket-IO 系列(一)Linux 网络 IO 模型
Socket-IO 系列(一)Linux 网络 IO 模型 一.基本概念 在正式开始讲 Linux IO 模型前,先介绍 5 个基本概念. 1.1 用户空间与内核空间 现在操作系统都是采用虚拟存储器, ...
- 由已打开的文件读取数据---read
头文件:#include<unistd.h> 函数原型:ssize_t read(int fd,void *buf,size_t count); 参数说明:fd:文件描述符 buf:存放读 ...
- php连接DB2
在php.ini中添加对DB2的支持 //////////////////////////////////////////////////// ;;;;;;;;;;;;;;;;;;;;;; ; Dyn ...