串行通信接口SCI

上传人:仙*** 文档编号:185757687 上传时间:2023-02-06 格式:PPT 页数:42 大小:778.53KB
收藏 版权申诉 举报 下载
串行通信接口SCI_第1页
第1页 / 共42页
串行通信接口SCI_第2页
第2页 / 共42页
串行通信接口SCI_第3页
第3页 / 共42页
资源描述:

《串行通信接口SCI》由会员分享,可在线阅读,更多相关《串行通信接口SCI(42页珍藏版)》请在装配图网上搜索。

1、第第0位位第第1位位第第2位位第第3位位第第 4位位第第5位位第第6位位第第7位位停止位停止位开始位开始位SCI数据格式4 41 12 23 35 56 67 78 89 99 9芯串行接口排列芯串行接口排列返回返回MAX232CPE16 15 14 13 12 11 10 916 15 14 13 12 11 10 91 2 3 4 5 6 7 81 2 3 4 5 6 7 851232232电平电平OUT IN+5V+5VTTLTTL电平电平OUT INTTLTTL电平电平转为转为232232电平电平14SCI编程模型SCI 数据寄存器数据寄存器MCU MCU 的的 内内 部部 总总 线线

2、 (Internal BusInternal Bus)接收移位寄存器发送移位寄存器接收引脚接收引脚RxD发送引脚发送引脚TxDSCI 控制寄存器控制寄存器SCI状态寄存器状态寄存器SCI波特率寄存器波特率寄存器返回返回循环模式循环模式选择位选择位SCI允许位允许位奇偶校验奇偶校验允许位允许位空闲线空闲线类型位类型位唤醒条件位唤醒条件位模式模式-字符字符长度选择位长度选择位发送反转发送反转标志位标志位奇偶校验类奇偶校验类型选择位型选择位发送中断发送中断允许位允许位 发送完成中发送完成中断允许位断允许位 接收器唤接收器唤醒位醒位发送器允许位发送器允许位 接收中断接收中断允许位允许位 空闲线中空闲线

3、中断允许位断允许位接收器接收器允许位允许位 发送终止位发送终止位 接收位接收位8 发送位发送位8 接收器帧接收器帧错误中断错误中断允许位允许位 接收器噪接收器噪声错误中声错误中断允许位断允许位 接收器溢出接收器溢出中断允许位中断允许位 DMA发送发送允许位允许位 DMA接收接收允许位允许位 接收器奇偶错接收器奇偶错误中断允许位误中断允许位 接收器奇接收器奇偶错误标偶错误标志位志位 发送缓冲区发送缓冲区空标志位空标志位 接收器帧错接收器帧错误标志位误标志位 接收器噪接收器噪声标志位声标志位 接收器溢接收器溢出标志位出标志位 接收器满接收器满标志位标志位 发送完成发送完成标志位标志位 接收器空接收

4、器空闲标志位闲标志位 未定义未定义 终止码标志位终止码标志位 接收进行接收进行标志位标志位 返回返回/SCI.h/SCI.h串行通信头文件串行通信头文件-#include GP32C.h /GP32 MCU#include GP32C.h /GP32 MCU映像寄存器名定义映像寄存器名定义#include Type.h /#include Type.h /类型别名定义类型别名定义#define ReSendStatusR#define ReSendStatusR SCS1 /SCI SCS1 /SCI状态寄存器状态寄存器#define ReTestBit#define ReTestBit 5

5、/5 /接收缓冲区满标志位接收缓冲区满标志位#define SendTestBit#define SendTestBit 7 /7 /发送缓冲区空标志位发送缓冲区空标志位#define ReSendDataR#define ReSendDataR SCDR /SCDR /数据寄存器数据寄存器/串行通信函数声明串行通信函数声明void SCIinit(voidvoid SCIinit(void);/);/串行口初始化串行口初始化void SCIsend1(INT8U o);/void SCIsend1(INT8U o);/发送发送1 1字节字节void SCIsendN(INT8U n,INT8

6、U chvoid SCIsendN(INT8U n,INT8U ch);/);/发送发送n n字节字节INT8U SCIre1(INT8U INT8U SCIre1(INT8U*p);/p);/接收接收1 1字节字节INT8U SCIreN(INT8U n,INT8U chINT8U SCIreN(INT8U n,INT8U ch);/);/接收接收n n字节字节_串行通信驱动文件包括串行通信驱动文件包括SCI初始化、接收初始化、接收1字节、发送字节、发送1字节、接收字节、接收n字节和发送字节和发送n字节函数。读者可以直接使用这些函数进行字节函数。读者可以直接使用这些函数进行MCU的串行通信编

7、程。的串行通信编程。/SCI.c/SCI.c串行通信串行通信-*/本文件包含本文件包含:*/(1)SCIinit:/(1)SCIinit:串行口初始化串行口初始化 */(2)SCIsend1:/(2)SCIsend1:串行发送串行发送1 1个字节个字节 */(3)SCIsendN:/(3)SCIsendN:串行发送串行发送n n字节字节 */(4)SCIre1:/(4)SCIre1:串行接收串行接收1 1字节字节 */(5)SCIreN:/(5)SCIreN:串行接收串行接收n n字节字节 */硬件连接硬件连接:*/MCU/MCU的串口与的串口与PCPC方的串口相连方的串口相连 */-/-*/

8、头文件头文件#include SCI.h#include SCI.h/SCIinit/SCIinit:串行口初始化串行口初始化-*/功能功能:对串行口进行初始化对串行口进行初始化,默认为允许默认为允许SCI,SCI,正常码输出正常码输出,8,8位数位数 *据据,无校验无校验,*/允许发送器允许发送器,允许接收器允许接收器.查询方式收发查询方式收发,波特率为波特率为9600(9600(设设fBUSfBUS *=2.4576MHz)=2.4576MHz)*/参数参数:无无 */返回返回:无无 */说明说明:该函数与具体的芯片型号该函数与具体的芯片型号(MC68HC908GP32)(MC68HC90

9、8GP32)有关有关 */-/-*void SCIinit(voidvoid SCIinit(void)/1./1.总线频率总线频率fBUSfBUS=2.4576MHz,=2.4576MHz,定义波特率定义波特率Bt=9600Bt=9600 SCBR=0b00000010;SCBR=0b00000010;/2./2.设置允许设置允许SCI,SCI,正常码输出正常码输出,8,8位数据位数据,无校验无校验 SCC1=0b01000000;SCC1=0b01000000;/3./3.设置允许发送设置允许发送,允许接收允许接收,查询方式收发查询方式收发 SCC2=0b00001100;SCC2=0b0

10、0001100;/SCIsend1:/SCIsend1:串行发送串行发送1 1个字节个字节-*/功能功能:串行发送串行发送1 1个字节个字节 */参数参数:要发送的数据要发送的数据 */返回返回:无无 */-/-*void SCIsend1(INT8U o)void SCIsend1(INT8U o)/判断判断ReStatusRReStatusR的第的第SendTestBitSendTestBit位是否为位是否为1,1,是是1 1可以发送可以发送 while(1)while(1)if(ReSendStatusR&(1SendTestBit if(ReSendStatusR&(1SendTest

11、Bit)!=0)!=0)ReSendDataR ReSendDataR=o;=o;break;break;/SCIsendN/SCIsendN:串行发送串行发送N N个字节个字节-*/功能功能:发送数组中的发送数组中的N N个字节数据个字节数据 */参数参数:待发送数据的字节数及存放这些数据的数组首地址待发送数据的字节数及存放这些数据的数组首地址 */返回返回:无无 */内部调用函数内部调用函数:SCIsend1 :SCIsend1 */-/-*void SCIsendN(INT8U n,INT8U chvoid SCIsendN(INT8U n,INT8U ch)int int i;i;fo

12、r(i=0;in;i+)for(i=0;in;i+)SCIsend1(chi);SCIsend1(chi);/SCIre1:/SCIre1:串行收一个字节数据串行收一个字节数据-*/功能功能:从串行口接收从串行口接收1 1个字节的数据个字节的数据 */参数参数:标志指针标志指针p p */返回返回:接收到的数据(若接收失败,返回接收到的数据(若接收失败,返回0 xff0 xff)*/说明说明:参数参数*p p带回接收标志带回接收标志.*p=0,p=0,收到数据收到数据;*p=1,p=1,未收到数据未收到数据 */-/-*INT8U SCIre1(INT8U INT8U SCIre1(INT8U

13、*p)p)INT16U k;INT16U k;INT8U i;INT8U i;/ReStatusR /ReStatusR第第ReTestBitReTestBit位为位为1 1表示可接收数据表示可接收数据 for(k=0;k 0 xfbbb;k+)for(k=0;k 0 xfbbb;k+)if(ReSendStatusR&(1ReTestBit if(ReSendStatusR&(1=0 xfbbb)if(k=0 xfbbb)i =0 xff;i =0 xff;*p=0 x01;p=0 x01;return i;return i;/SCIreN:HC08/SCIreN:HC08串行接收串行接收N

14、 N个字节个字节-*/功能功能:接收接收N N个字节数据个字节数据,并存放在并存放在chch数组中数组中 */参数参数:待接收的数据字节数及其存放的数组首地址待接收的数据字节数及其存放的数组首地址 */返回返回:接收标志接收标志 =0=0 收到数据收到数据,=1,=1 未收到数据未收到数据 */内部调用函数内部调用函数:SCIre1 :SCIre1 */-/-*INT8U SCIreN(INT8U n,INT8U chINT8U SCIreN(INT8U n,INT8U ch)int int m;m;INT8U fp INT8U fp;m=0;m=0;while(m n)while(m n)c

15、hm chm=SCIre1(&fp);=SCIre1(&fp);if(fp if(fp=1)=1)return 1;return 1;m+;m+;return 0;return 0;EnDisInt.h 返回返回表表7-5 中断方式中断方式08C测试工程文件测试工程文件工程文件名工程文件名SCI_INT.prj所在路径所在路径MC08Ex2007GP32GP32CC03_串行通信中断方式串行通信中断方式文件类型文件类型文件名文件名功能简述功能简述讲解章节讲解章节头文件头文件GP32C.h芯片头文件芯片头文件08C工程文件组织工程文件组织5.3Includes.h总头文件总头文件08C工程文件组

16、织工程文件组织5.3EnDisInt.h开放或禁止开放或禁止MCU模块模块中断中断08C工程文件组织工程文件组织5.3SCI.h串行通信头文件串行通信头文件本章本章Type.h数据类型头文件数据类型头文件08C工程文件组织工程文件组织5.3C语言语言子函数文件子函数文件MCUinit.c芯片系统初始化函数芯片系统初始化函数定义定义初始化及初始化及PLL编程实编程实例例14.2.5SCI.cCI收发子函数定义收发子函数定义本章本章Vectors.c中断处理及中断向量中断处理及中断向量表表08C工程文件组织工程文件组织5.3C语言主函数语言主函数Main.c主函数主函数本章本章/-/-*/工工 程

17、程 名名:SCI_Int.prj:SCI_Int.prj */硬件连接硬件连接:*/(1)MCU/(1)MCU的串口与的串口与PCPC方的串口相连方的串口相连 */程序描述程序描述:利用中断方式把收到的数据发送回去利用中断方式把收到的数据发送回去 */目目 的的:初步掌握利用中断方式进行串行通信的基本知识初步掌握利用中断方式进行串行通信的基本知识 */-/-清华清华20072007版版嵌入式技术基础与实践嵌入式技术基础与实践实例实例-*/总头文件总头文件#include Includes.h#include Includes.h/主函数主函数void main()void main()Disa

18、bleMCUint DisableMCUint();/();/禁止总中断禁止总中断 /1./1.芯片初始化芯片初始化 MCUinitMCUinit();();/2./2.模块初始化模块初始化 SCIinitSCIinit();/(1)();/(1)串口初始化串口初始化 /3./3.开放各模块中断开放各模块中断 EnableSCIreIntEnableSCIreInt();/(1)();/(1)开放开放SCISCI接收中断接收中断 /4./4.开放总中断开放总中断 EnableMCUintEnableMCUint();();/主循环主循环 while(1)while(1)EnDisInt.h/E

19、nDisInt.h/EnDisInt.h 开放或禁止开放或禁止MCUMCU各模块中断头文件各模块中断头文件-#include GP32C.h /GP32 MCU#include GP32C.h /GP32 MCU映像寄存器名定义映像寄存器名定义/开放或禁止中断宏定义开放或禁止中断宏定义#define EnableMCUint()asm(CLI#define EnableMCUint()asm(CLI)/)/开放总中断开放总中断#define DisableMCUint()asm(SEI#define DisableMCUint()asm(SEI)/)/禁止总中断禁止总中断#define Ena

20、bleSCIreInt#define EnableSCIreInt()SCC2|=(1 5)/()SCC2|=(1 5)/令令SCC2.5=1,SCC2.5=1,开放开放SCISCI接收中断接收中断#define DisableSCIreInt#define DisableSCIreInt()SCC2&=(1 5)/()SCC2&=(1 5)/令令SCC2.5=0,SCC2.5=0,禁止禁止SCISCI接收中断接收中断/Vectors08.c/Vectors08.c中断处理函数与中断向量表中断处理函数与中断向量表-*/功能功能:*/(1)/(1)定义中断处理子程序定义中断处理子程序 */(2)

21、/(2)放置中断向量表放置中断向量表 */本文件包含本文件包含:/(1)SCI/(1)SCI接收中断处理函数接收中断处理函数 */(2)/(2)未定义的中断处理函数未定义的中断处理函数 */说明说明:该文件与芯片具体型号有关该文件与芯片具体型号有关 */(1)/(1)芯片型号芯片型号MC68HC908GP32 MC68HC908GP32 */-/-*#include Type.h /#include Type.h /类型别名定义类型别名定义#include EnDisInt.h#include EnDisInt.h /开放或禁止开放或禁止MCUMCU各模块中断的宏定义各模块中断的宏定义#inc

22、lude SCI.h /#include SCI.h /该头文件包含串行通信函数声明该头文件包含串行通信函数声明/isrSCIre/isrSCIre:接收中断处理函数接收中断处理函数-*/功能功能:接收接收1 1个字节数据个字节数据,发送接到的数据发送接到的数据 */参数参数:无无 */返回返回:无无 */内部调用函数内部调用函数:SCIreN,SCIsendN:SCIreN,SCIsendN */-/-*#pragmainterrupt_handlerisrSCIrevoidisrSCIre(void)INT8Uf;/标志是否接受到数据标志是否接受到数据INT8USerialBuff1;/存

23、放接收数据的数组存放接收数据的数组DisableMCUint();/禁止总中断禁止总中断/接收接收1个字节的数据个字节的数据f=SCIreN(1,SerialBuff);/若收到数据若收到数据,则发送接到的数据则发送接到的数据if(f=0)SCIsendN(1,SerialBuff);EnableMCUint();/开放总中断开放总中断/此处为用户中断处理函数的存放处此处为用户中断处理函数的存放处/未定义的中断处理函数未定义的中断处理函数,本函数不能删除本函数不能删除#pragmainterrupt_handlerisrDummyvoidisrDummy(void)/中断矢量表中断矢量表,需定义中断函数需定义中断函数,可修改下表中的相应项目可修改下表中的相应项目/(interruptserviceroutine,isr中断处理程序中断处理程序)#pragmaabs_address:0 xffdc/中断向量表起始地址中断向量表起始地址void(*const_vectab)(void)=/省略其他未使用的中断向量定义省略其他未使用的中断向量定义isrSCIre,/SCI接收中断接收中断/省略其他未使用的中断向量定义省略其他未使用的中断向量定义;#pragmaend_abs_address

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!