📄 uart.c
字号:
#include "upsd3400.h"
#include "upsd3400_hardware.h"
#include "uart.h"
#define uchar unsigned char
#define uint unsigned int
unsigned char idata tx_buf[]={"upsd3400 stm microelectronics\n"};
/**********************************************************
* delay_ms() *
** 延时子程序 实现延时功能;**
*********************************************************/
void delay_ms(uint count)
{ uint a,b;
for(a=0;a<count;a++)
for(b=0;b<100;b++); //ims延时;
}
/**********************************************************
* uart_init()*
** 初始化UART0;9600BPS,方式1,中断允许 **
******************************************************/
void uart_init() //串口初始化子程序;
{
TMOD |= 0x20; //定时器1,方式2;
TL1=0xFD;
TH1=0xFD; //设置波特率为9600BPS;
SCON |=0x50; //方式1,允许接收;
PCON=0x00;
// IP=0x10; //定义窜口为高优先级中断
// IE |=0x90; // 允许串口中断;
TR1=1; //开启计数控制位;
// PS=1;
// ES=1;
//EA=1; //打开所有中断源;
}
/**********************************************************
* IrDA_Init()*
**开启IrDA RxD1, TxD1 **
******************************************************/
// void IrDA_Init(void)
// {
// P1SFS0 |= 0x0c; // 分配为P1.2,P1.3 作为 RxD1, TxD1 ;
// P1SFS1 &= ~0x0c;
// IRDACON = 0x56;
// }
/**********************************************************
* uart_send()*
** 发送数据子程序 **
******************************************************/
void uart_send()
{
uchar i;
uint j;
while(1)
i=0;
while(tx_buf[i]!=0x00)
{
SBUF=tx_buf[i];
while(TI==0);
TI=0;
i++;
}
for(j=0;j<50000;j++) ;
} /**********************************************************
* ()*
** 主程序 **
******************************************************/
// void main(void)
// {
//
// WDKEY=0x55; // 关闭看门狗定时器;
// uart_init();
// IrDA_Init ();
//
// uart_send();
// delay_ms(500);
// }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -