/* ****************************************************************
** 功能描述: 串口测试,发送一个数组到发送寄存器
*************************************************************** */
#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++;
}
}
}
}
dsPIC33F串口发送一个数组到发送寄存器-UART
最新推荐文章于 2023-07-24 17:07:32 发布