TMS320F28379D 使用心得之 SCI
原文地址https://blog.csdn.net/qq_39545674/article/details/82597106
一、SCI 简介
SCI(Serial Communication Interface)意为"串行通信接口",是相对于并行通信的,是串行通信技术的一种总称,最早由 Motorola 公司提出的。它是一种通用异步通信接口 UART,与 MCS‐51 的异步通信功能基本相同。(以上内容来自百度)
二、28379D 的 SCI 模块简介
2.1 模块功能
基本就是 UART,数据格式可编程。28398D 的 SCI 和其他 28 系列的产品基本一样,有两个增强功能。一个是发送和接收缓冲,FIFO。如果启用了发送 FIFO,就可以将要发送的字节先储存在发送 FIFO 里,待发送 FIFO 里的字节数达到设置的上限后,再一起发送出去。如果启用了接收 FIFO,就可以将接收的字节先存在接收 FIFO 里,待接收 FIFO 里的字节数达到设置的上限后,再产生中断来处理接收的数据。另一个是波特率自动检测功能,这个一般不用。
2.2 28379D 的 SCI 模块引脚
28379D 有 4 个 SCI,即 SCIA,SCIB,SCIC,SCID。每个 SCI 的发送引脚和接收引脚都有很多个,如下表:
发送Tx 接收Rx
SCIA GPIO8/29/36/42/48/65/84/135 GPIO9/28/35/43/49/64/85/136
SCIB GPIO9/10/14/18/22/54/70/86/137 GPIO11/15/19/23/55/71/87/138
SCIC GPIO12/38/56/63/72/89/106/140 GPIO13/39/57/62/73/90/107/139
SCID GPIO47/76/93/104/142 GPIO46/77/94/105/141
三、SCI 配置步骤
3.1 配置 GPIO
配置相应的 GPIO 为 SCIx 的复用引脚。
3.2 配置 SCI 的数据格式
配置发送和接收的数据格式,一般是:1 位停止位,无奇偶校验,无回环,空闲线模式(两个对象之间通讯,如果是三个及以上,得用地址线模式),8 位数据位。
3.3 配置波特率
配置波特率,不多说。
3.4 配置 FIFO
首先得使能 FIFO,然后根据需要,进行配置。比如使能接收 FIFO 中断,设置 FIFO 的级数,基本的就这些。还可以配置波特率自检的一些设置,不过一般不用。
3.5 使能 SCI
复位一些标志,比如 SCICTL1 寄存器的 SWRESET,必须被置 1,等等。
3.6 配置 PIE
首先使能 PIE,然后修改 PIE 向量表,然后使能对应的 PIE,以及 CPU 中断。
四、代码示例
示例使用了 SCIB,引脚使用 GPIO18 为 Tx,GPIO19 为 Rx。
4.1 配置 GPIO
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO18=0;//开启上拉电阻
GpioCtrlRegs.GPAPUD.bit.GPIO19=0;//开启上拉电阻
GpioCtrlRegs.GPADIR.bit.GPIO19=0;
GpioCtrlRegs.GPADIR.bit.GPIO18=1;
GpioCtrlRegs.GPAGMUX2.bit.GPIO18=0;
GpioCtrlRegs.GPAGMUX2.bit.GPIO19=0;
GpioCtrlRegs.GPAMUX2.bit.GPIO18=2;//复用为 SCIB 的输出
GpioCtrlRegs.GPAMUX2.bit.GPIO19=2;//复用为 SCIB 的输入
EDIS;
4.2 配置数据格式
ScibRegs.SCICCR.all = 0x0007;//1 位停止位,无奇偶校验,无回环测试,空闲线模式,8 位数据位
4.3 配置波特率
ScibRegs.SCIHBAUD.bit.BAUD=0x0000;//波特率 115200
ScibRegs.SCILBAUD.bit.BAUD=0x0036;//波特率 115200
4.4 配置 FIFO
ScibRegs.SCIFFTX.bit.SCIFFENA=1;//使能 FIFO
ScibRegs.SCIFFRX.bit.RXFFIENA = 1;//使能 FIFO 接收中断
ScibRegs.SCIFFRX.bit.RXFFIL=1;//FIFO 接收字节 1
ScibRegs.SCIFFCT.all = 0x0;
4.5 重新使能 SCI
ScibRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset 重启sci
4.6 配置 PIE
PieCtrlRegs.PIECTRL.bit.ENPIE = 1;//使能 PIE
EALLOW;
PieVectTable.SCIB_RX_INT=&ScibInterrupt;//修改中断向量表
EDIS;
PieCtrlRegs.PIEIER9.bit.INTx3 = 1;//使能 PIE 中断
IER |= M_INT9;//使能 CPU 中断
4.7 接收中断函数 ScibInterrupt 如下:
interrupt void ScibInterrupt(void)
{
int i=0,data;
for(i=0;i<ScibLegnth;i++)
{
data=ScibRegs.SCIRXBUF.bit.SAR;//接收的数据
}
ScibRegs.SCIFFRX.bit.RXFFINTCLR=1; // 清接收中断标志
PieCtrlRegs.PIEACK.all|=PIEACK_GROUP9;// 清接收中断标志
}
4.8 发射函数
int ScibSend(int data)
{
while (ScibRegs.SCIFFTX.bit.TXFFST != 0) {}
ScibRegs.SCITXBUF.bit.TXDT=0x06;
return 0;
}
5、注意
1、请检查自己工程的配置,系统时钟是否是200M,如果不是,则波特率不对,具体的配置方式请参百度
2、本文代码是基于硬件TMS320F28379D,如果你是使用的其他硬件,则代码一般是不能用的
---------------------
作者:一朝英雄拔剑起
来源:CSDN
原文:https://blog.csdn.net/qq_39545674/article/details/82597106
版权声明:本文为博主原创文章,转载请附上博文链接!
TMS320F28379D 使用心得之 SCI的更多相关文章
- 如何在两个月的时间内发表一篇EI/SCI论文-我的时间管理心得
在松松垮垮的三年研究生时期,要说有点像样的成果,也只有我的小论文可以谈谈了.可能有些厉害的角色研究生是丰富而多彩的,而大多数的同学在研究生阶段可能同我一样,是慢悠悠的渡过的,而且可能有的还不如我,我还 ...
- SCI投稿过程总结、投稿状态解析、拒稿后对策及接受后期相关问答
SCI投稿过程总结.投稿状态解析.拒稿后对策及接受后期相关问答 http://muchong.com/t-9174366-1 SCI投稿过程总结.投稿状态解析.拒稿后处理对策及接受后期相关问答综合 ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- NoSql数据库使用半年后在设计上面的一些心得
NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...
- 我的MYSQL学习心得(二) 数据类型宽度
我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(三) 查看字段长度
我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(四) 数据类型
我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(五) 运算符
我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 我的MYSQL学习心得(六) 函数
我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
随机推荐
- POJ:1222-EXTENDED LIGHTS OUT(矩阵反转)
EXTENDED LIGHTS OUT Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12956 Accepted: 8186 ...
- poj 3111 卖珠宝问题 最大化平均值
题意:有N件分别价值v重量w的珠宝,希望保留k件使得 s=v的和/w的和最大 思路:找到贡献最大的 设当前的s为mid(x) 那么贡献就是 v-w*x 排序 ,取前k个 bool operator&l ...
- Hive 表数据的存储和压缩格式
SerDe * 按行存储 * 按列存储 file_format: : | SEQUENCEFILE 序列化(行存储) | TEXTFILE 文本格式(行存储)- (Default, depending ...
- TP-常见错误1
1.无法加载模块 FILE: D:\wamp64\www\www.test_shop.com\ThinkPHP\Library\Think\Dispatcher.class.php LINE: 178 ...
- 13,发布CRM
发布CRM你将使用以下软件 nginx uWSGI CentOS7 CRM项目文件 virtualenv supervisor WSGI.uWSGI python web服务器开发使用WSGI协议(W ...
- 16.2,docker网络
Docker 允许通过外部访问容器或容器互联的方式来提供网络服务. 端口映射允许外部访问容器 --link 容器互联 容器桥接网络 .通过--link容器通信,给test2添加一个hosts解析记 ...
- RSA 加解密算法详解
RSA 为"非对称加密算法".也就是加密和解密用的密钥不同. (1)乙方生成两把密钥(公钥和私钥).公钥是公开的,任何人都可以获得,私钥则是保密的. (2)甲方获取乙方的公钥,然后 ...
- sql server inser相关处理(添加一条,一次添加多条,Bulk插入多条)
1,insert语句 insert into 表一(字段一,字段二,字段三) value(值一,值二,值三) 2,sql 插入多条语句,其中完整值之间用逗号分割 insert into 表一(字段一, ...
- Java 虚拟机结构分析
本博文主要介绍了JVM(Java Virtual Machine)的组成部分以及它们内部的工作机制和原理.需要注意的是,虽然平时我们用的大多是Sun(现已被Oracle收购)JDK提供的JVM,但是J ...
- 随笔 —— 门徒 & 无限恐怖
门徒 忧思缠身,所为何物 不知何人,可免世俗 每每朝暮,心无释处 悲从中来,如泣如诉 仁者存世,满怀悲苦 逝者如斯,追还无路 上天无门,开怀捧腹 无路偏行,我行我素 无限恐怖 饥寒苦难谁知故,日日行路 ...