dsPIC33F串口接收到的数据立即返送-UART

本文详细介绍了串行通讯程序的设计与实现过程,包括初始化、中断子程序以及数据的接收与返送。通过设置低优先级中断接收,实现高效的数据传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/* ****************************************************************
** 功能描述: 串行通讯程序,将接收到的数据立即返送
*************************************************************** */
#include	"p30f6014.h"			//ds30f6014头文件
unsigned	int	recdata;			// 接收数据寄存器
/* ****************************************************************
** 函 数 名: Uart_Initial()
** 功能描述: 232串行通讯初始化子程序,设置低优先级中断接收,使能232收和发
*************************************************************** */
void	Uart_Initial()
{
	IFS0bits.U1TXIF=0;         //复位发送中断标志位
	IFS0bits.U1RXIF=0;         //复位接收中断标志位  
	IPC2bits.U1RXIP=1;         //收中断优先级:1级  
	IPC2bits.U1TXIP=1; 
	U1MODE=0x8000; 		//UART使能,8位数据,无奇偶校验 	
	U1STA=0x0000;		//当一个字符被传输到发送移位寄存器(发送缓冲器中至少还有一
//个字符)产生中断,当接收到一个字符时,中断标志位置位
	U1BRG=0X34;		//U1BRG=Fcy/(16*波特率)-1,此处波特率为9600
}
/* ****************************************************************
** 函 数 名: __attribute__((__interrupt__)) _U1RXInterrupt()
** 功能描述: 中断子程序:232接收中断
*************************************************************** */
void __attribute__((__interrupt__)) _U1TXInterrupt()
{
	while(U1STAbits.TRMT==0);   //当为0时,表明移位寄存器没空
	IFS0bits.U1TXIF=0;   
}
/* ****************************************************************
** 函 数  名: __attribute__((__interrupt__)) _U1TXInterrupt()
** 功能描述: 中断子程序:232发送中断
*************************************************************** */
void __attribute__((__interrupt__)) _U1RXInterrupt()
{
	while(U1STAbits.URXDA==1)
	{
		recdata=U1RXREG;	// 接收数据并存储
		U1TXREG=recdata;	// 返送接收到的数据
	}
	IFS0bits.U1RXIF=0;		// 清接收中断标志
}
main()
{
	Uart_Initial();		// 串行通讯初始化子程序
	IEC0bits.U1RXIE=1; 	//UART1收使能
	IEC0bits.U1TXIE=1;U1STAbits.UTXEN=1;
	while(1){	;		// 等待中断,用户也可编写其他应用程序
	}
}

本手册介绍以下 dsPIC33F 16 位器件: 本手册介绍 dsPIC33F 系列架构和外设模块的操作,但并未涵盖每种器件的具体信息。 • dsPIC33FJ64GP206 • dsPIC33FJ64GP206A • dsPIC33FJ64GP306 • dsPIC33FJ64GP306A • dsPIC33FJ64GP310 • dsPIC33FJ64GP310A • dsPIC33FJ64GP706 • dsPIC33FJ64GP706A • dsPIC33FJ64GP708 • dsPIC33FJ64GP708A • dsPIC33FJ64GP710 • dsPIC33FJ64GP710A • dsPIC33FJ64MC506 • dsPIC33FJ64MC506A • dsPIC33FJ64MC508 • dsPIC33FJ64MC508A • dsPIC33FJ64MC510 • dsPIC33FJ64MC510A • dsPIC33FJ64MC706 • dsPIC33FJ64MC706A • dsPIC33FJ64MC710 • dsPIC33FJ64MC710A • dsPIC33FJ128GP206 • dsPIC33FJ128GP206A • dsPIC33FJ128GP306 • dsPIC33FJ128GP306A • dsPIC33FJ128GP310 • dsPIC33FJ128GP310A • dsPIC33FJ128GP706 • dsPIC33FJ128GP706A • dsPIC33FJ128GP708 • dsPIC33FJ128GP708A • dsPIC33FJ128GP710 • dsPIC33FJ128GP710A • dsPIC33FJ128MC506 • dsPIC33FJ128MC506A • dsPIC33FJ128MC510 • dsPIC33FJ128MC510A • dsPIC33FJ128MC706 • dsPIC33FJ128MC706A • dsPIC33FJ128MC708 • dsPIC33FJ128MC708A • dsPIC33FJ128MC710 • dsPIC33FJ128MC710A • dsPIC33FJ256GP506 • dsPIC33FJ256GP506A • dsPIC33FJ256GP510 • dsPIC33FJ256GP510A • dsPIC33FJ256GP710 • dsPIC33FJ256GP710A • dsPIC33FJ256MC510 • dsPIC33FJ256MC510A • dsPIC33FJ256MC710 • dsPIC33FJ256MC710A 中文手册,网上也有上传压缩包含的各个章节的文档,我整合到一个文档下,并且去掉了安全保护添加了书签,但书签不是很完善,有能力的人可以帮忙添加上完整的四级书签,辛苦成果!!请觉得不好的地方不要喷……
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值