串行通信口SCI__HCS12学习笔记(2)
SCI采用NRZ数据格式,用负电平表示一种二进制值,正电平表示另一种二进制值,不使用零电平。空闲状态为1,发送器通过发送一个0表示一字节传输开始随后是数据位,最后发送1~2位的停止位,表示一字节的传送结束。一个开始位到一个停止位,为1帧Frame。
寄存器:
对于编程者来说,直接面对的就是寄存器,因此对于寄存器的介绍是非常重要的。
这里只列举,详细各个位的介绍参照数据手册:
波特率寄存器 SCIBDH SCIBDL H的高3位无效,因此一种13位1~8191
控制寄存器
状态寄存器
数据寄存器
初始化、收、发子函数:
//串行通信需要用到的头文件
#include "mc9s12dg128.h"
#include "Type.h"
//串行通信寄存器及标志位定义
#define ReSendStatusR SCI0SR1
#define ReTestBit
#define SendTestBit
#define ReSendDataR
//串行通信相关函数声明
void SCIInit(void);
void SCISend1(INT8U o);
void SCISendN(INT8U n,INT8U ch[]);
INT8U SCIRe1(INT8U *p);
INT8U SCIReN(INT8U n,INT8U ch[]);
//特别声明,这里的INT8U表示8位无符号数
//[SCI.c]串行通信----------------------------------------------------------*
//本文件包含:
//
//
//
//
//
//硬件连接:
//
//-------------------------------------------------------------------------*
//头文件
#include "SCI.h"
//SCIInit:DG128串行口0初始化函数-------------------------------------------*
//功
//
//
//
//参
//返
//说
//
//
//-------------------------------------------------------------------------*
void SCIInit(void)
{
}
//SCISend1:串行发送1个字节-------------------------------------------------*
//功
//参
//返
//-------------------------------------------------------------------------*
void SCISend1(INT8U o)
{
}
//SCISendN:串行发送N个字节-------------------------------------------------*
//功
//参
//返
//内部调用函数:SCISend1
//-------------------------------------------------------------------------*
void SCISendN(INT8U n,INT8U ch[])
{
}
//SCIRe1:串行收一个字节数据------------------------------------------------*
//功
//参
//返
//说
//-------------------------------------------------------------------------*
INT8U SCIRe1(INT8U *p)
{
}
串行通信口SCIHCS1 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)