dsPIC33F串口发送一个数组到发送寄存器-UART

来源:互联网 发布:传神翻译软件 编辑:程序博客网 时间:2024/05/16 08:45
/* ****************************************************************** 功能描述: 串口测试,发送一个数组到发送寄存器*************************************************************** */#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;//UART1发送中断使能while (1){if(U1STAbits.UTXBF==0);//为0时表明发送缓冲没有满,可以再装入数据    { if(send_no<12)//发送12个数据{U1TXREG=Send_data[send_no];send_no++; }}}}

原创粉丝点击