TMS28335SCI学习笔记
来源:互联网 发布:奔驰c级coupe 知乎 编辑:程序博客网 时间:2024/06/07 14:34
TMS28335一共有3个SCI(Serial Communication Interface)模块。SCI可以看成是UART(异步串行接口通信)。下面介绍SCI的相关寄存器。
SCICR:SCI通信参数设置寄存器,设置数据位,停止位,奇偶校验位。
SCICTL1:使能SCI的发送接收功能 注:SW RESET需置1
SCILBAUD、SCIHBAUD:通信速率(波特率)的设置。
SCICTL2:使能接收发送中断,以及发送中断标志位。
SCIRXST:接收相关标志位。
SCIRXBUF:8位发送缓存寄存器
SCITXBUF:8位接收缓存寄存器。
SCI中断配置:
SCI的中断采用三级中断管理。分别是SCI外设中断,PIE中断,CPU中断。SCIA的PIE中断是第九组,分别是INT9.1和INT9.2.PIE中断的配置在前面已经说过了,此处不多说。注意:在中断不要忘记将PIEACK写1清除。
SCI的FIFO模式:
FIFO:先入先出队列。SCI采用这种模式时,接收或者发送完指定字节数量的数据后,才进入中断处理。这样可以节省了CPU的使用效率,CPU不用每次接收完一个字节的数据后就进入中断处理。
相关寄存器:
SCIFFTX:配置发送的数据量,使能SCI的FIFO模式,使能中断等
SCIFFRX:配置接收的数据量,使能接收中断等。
在学习FIFO模式时,遇到一个问题,就是接收完指定数量字节的数据后,总是重复进入两次发送中断,一次找不到原因。下面贴出代码,希望各位读者不吝赐教。
interrupt void ISRSCICRX (void){Uint16 i;PieCtrlRegs.PIEACK.bit.ACK8 = 1;#if sci_fifoScicRegs.SCIFFRX.bit.RXFFINTCLR = 1;#endiffor(i = 0; i < 4; i++){ Receivebuff[i] = ScicRegs.SCIRXBUF.all;}ScicRegs.SCIFFRX.bit.RXFIFORESET = 0;ScicRegs.SCIFFRX.bit.RXFIFORESET = 1;flag++;for(i = 0; i < 4; i++){ ScicRegs.SCITXBUF = Receivebuff[i];}}
阅读全文
0 0
- TMS28335SCI学习笔记
- 学习笔记?
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- Fragment Hide and Show
- ci框架 动态选择数据库
- 禁用回车1
- JDK中的URLConnection参数详解
- 迁移Oracle数据至MySQL问题记录
- TMS28335SCI学习笔记
- opencv实现PCA人脸降维
- php字符串处理函数
- 运行wordcount程序报 Input path does not exist 错
- Linux系统下项目部署常用命令
- [编程题] 重排数列
- Unity Shader初涉之 -- 布尔值控制Shader使用哪种计算
- 装修前必看!设计师私下讨论的最新餐厅设计全在这里了!
- 针对移动端的前端工作流(7)—WeUI样式的loading和dialog组件 96 冴羽 关注 2016.10.13 20:10 字数 273 阅读 1018评论 0喜欢 1 有这个需求 因为移动