/* **************************************************************** ** 功能描述: 串口测试,将数组发送到寄存器 *************************************************************** */ #include "p30f6014.h" //ds30f6014头文件 unsigned int send_no; ///发送数据数量 unsigned int Send_data[12]={0xeb,0x90,0xeb,0x90,0xeb,0x90,0x71,0x61,0x00,0x01,0x02,0x03}; //发送的数组 /* **************************************************************** ** 函 数 名: Uart_Initial() ** 功能描述: 通用异步收发器UART初始化 *************************************************************** */ /* 通用异步收发器UART初始化 */ void Uart_Initial() { IFS0bits.U1TXIF=0; ///发送中断标志 IFS0bits.U1RXIF=0; /// IPC2bits.U1TXIP=1; ///发中断优先级:1级 U1MODE=0x8000; //UART使能,8位数据,无奇偶验证 U1STA=0x0400; //当一个字符被传输到发送移位寄存器(发送缓冲器) //少有一个字符)中断,当接收到一个字符时,中 //断标位置 U1BRG=0X34; //U1BRG=Fcy/(16*波特率)-1,波特率9600 return; } /* **************************************************************** ** 函 数 名: __attribute__((__interrupt__)) _U1TXInterrupt() ** 功能描述: 中断子程序:232发送中断子程序 *************************************************************** */ void __attribute__((__interrupt__)) _U1TXInterrupt() { while(U1STAbits.TRMT ==0); //当0时,表示移位寄存器没有空 IFS0bits.U1TXIF=0; ///发送中断标志 } main() { Uart_Initial (); //通用异步收发器UART初始化 IEC0bits.U1TXIE=1; //UART发送中断使能 while (1) { if(U1STAbits.UTXBF==0); //0时表示发送缓冲不满,可重新安装数据 { if(send_no<12) //发送12个数据 { U1TXREG=Send_data[send_no]; send_no ; } } } }