⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commdrv.c

📁 com串口源代码
💻 C
字号:
/******************************************************************************
File Name : CommDrv.c
Author : Rene Trenado
Location : Motorola Applications Lab, Baja California
Date Created : July 2000
Current Revision : 0.0
Notes : This file contains the code to drive the serial port
*******************************************************************************/
#include "CommDrv.h"
static void CommDrvDefaultProc (register BYTE value);
static void (* EvtProcedure) (register BYTE value) = CommDrvDefaultProc;
/***********************************************************************
Function : CommDrvDefaultProc
Parameters :
Date : July 2000
Desc :
***********************************************************************/
static void CommDrvDefaultProc (BYTE value) {
(void)value;
}
/***********************************************************************
Function : UseDefaultCommProc
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void UseDefaultCommProc (void) {
DisableInterrupts;
EvtProcedure = CommDrvDefaultProc;
EnableInterrupts;
}
/***********************************************************************
Function : OpenComm
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void OpenComm (register BYTE BaudRate, register CommOptions Options) {
SCBR = BaudRate; // Set the baud rate
SCC1 = 0x40; // Enable baud rate generator //
SCC2 = Options;
}
/***********************************************************************
Function : CloseComm
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void CloseComm (void) {
}
/***********************************************************************
Function : AssignCommEventProc
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void CommEventProc (EventProc Proc) {
DisableInterrupts; // Disable Interrupts
EvtProcedure = Proc; // Install service handler
EnableInterrupts; // Enable interrupts
}
/***********************************************************************
Function : WriteComm
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void WriteComm (BYTE c) {
SCDR = c; // Write char to SCI data register
while (!(SCS1 & 0x80)); // Wait until character gets transmited
}
/***********************************************************************
Function : ReadComm
Parameters :
Date : July 2000
Desc :
***********************************************************************/
BYTE ReadComm (void) {
while (!(SCS1 & 0x20));
return SCDR;
}
/***********************************************************************
Function : WriteCommStr
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void WriteCommStr (char* string) {
while (*string) {
SCDR = *string++;
while (!(SCS1 & 0x80));
}
}
/***********************************************************************
Function : CommRx
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void @interrupt UartRxISR (void) {
SCS1; // acknowledge this IRQ
EvtProcedure (SCDR); // Fordward the character to a service routine
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -