📄 uart0.c
字号:
#pragma interrupt INTSR0 MD_INTSR0
#pragma interrupt INTST0 MD_INTST0
#define UART0_GLOBALS
#include "includes.h"
UART0_EXT void Uart0Init (void)
{
PM1 &= 0xfe; /*TX设置为输出*/
P1 |= 0x01;
ASIM0 = 0x01;
ASIM0 = 0x01|(0x03<<3)|(0x01<<2); /*偶校验,8位长度,1停止位*/
BRGC0 = 16|(0x03<<6); /*波特率设置为9600*/
STIF0 = 0;
STMK0 = 0;
STPR0 = 0; /*允许发送中断,高优先级*/
SRIF0 = 0;
SRMK0 = 0;
SRPR0 = 0; /*允许接收中断,高优先级*/
ASIM0 |= 0x80;
ASIM0 |= 0x60; /*开收发*/
}
__interrupt void MD_INTSR0 (void)
{
INT8U err_type;
err_type = ASIS0;
Buffer[Uart0_RcvCnt++] = RXB0;
Uart0_RcvFlag = 1;
TimeOut = 2;
Tm51Open();
}
__interrupt void MD_INTST0 (void)
{
TXS0 = Buffer[Uart0_SendCnt++];
if (Uart0_SendCnt == Ir_RcvCnt){ /*如果发送完毕*/
Uart0_SendCnt = 0;
Ir_RcvCnt = 0;
STMK0 = 1; /*屏蔽UART0发送中断*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -