📄 uart.c
字号:
#pragma sfr
#pragma di
#pragma ei
#pragma nop
#pragma interrupt INTSR0 Uart0_Receive_interrupt
#pragma interrupt INTST0 Uart0_Send_interrupt
#include "serial_config.h"
unsigned char SendString[5];
unsigned char ReceiveString[5];
unsigned char *SendPointer = SendString;
unsigned char *ReceivePointer = ReceiveString;
unsigned char i=0;
unsigned char j=0;
void UART0_Init()
{
PM1.0 = Uart_TxD_Output_Mode;
PM1.1 = Uart_RxD_Iutput_Mode;
P1.0 = Uart_TxD_Output_Init;
BRGC0 = Uart0_BaseClk + Uart0_CounterClk;
ASIM0 = Uart0_Asim0_Reset_Value + Uart_Parity + Uart_Data_Bit + Uart_Stop_Bit;
ASIM0 += Uart_Power_On;
RXE0 = 1;
STMK0 = 0;
SRMK0 = 0;
}
void main()
{
DI();
PCC = 0x00;
UART0_Init();
EI();
while(1);
}
__interrupt void Uart0_Receive_interrupt()
{
if(j<5){
*ReceivePointer++ = RXB0 ;
SendString[j] = ReceiveString[j];
j++;
}
if(j==5) {RXE0 = 0; TXE0 = 1; TXS0 = *SendPointer++; i++; j=0; ReceivePointer=ReceiveString; }
}
__interrupt void Uart0_Send_interrupt()
{
if(i<6)
{
TXS0 = *SendPointer++;
i++;
}
if(i==6) {TXE0 = 0; RXE0 = 1; i=0; SendPointer=SendString; }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -