|
在下用DSPIC33FJ32MC202的RB3做TX,查询发送;RB4做RX,中断接收;现在是发送正常.遇到的问题是,UART1
初始化后,上位机没有发送数据,DSPIC33FJ32MC202居然会跳入接收中断,且U1STAbits.URXDA =1,
void Init_Uart1(void)
{
U1MODEbits.STSEL = 0; // 1-stop bit
U1MODEbits.PDSEL = 0; // No Parity, 8-data bits
U1MODEbits.UEN = 0;
U1MODEbits.ABAUD = 0; // Auto-Baud Disabled
U1MODEbits.BRGH = 0; // Low Speed mode
U1MODEbits.URXINV = 1; // RX空闲时=0
U1STAbits.URXISEL = 0; // Interrupt after four RX character is received;
IEC0bits.U1RXIE = 1; // UART1接收中断使能
IFS0bits.U1RXIF = 0; // 复位接收中断标志位
U1MODEbits.UARTEN = 1; // Enable UART
U1STAbits.UTXEN = 1;
IFS0bits.U1TXIF = 0;
}
void __attribute__((interrupt, no_auto_psv)) _U1RXInterrupt (void)
{
static unsigned int RX_count;
IFS0bits.U1RXIF = 0;
if(U1STAbits.URXDA == 1)
{
Rxdata[RX_count] = U1RXREG; // 接收数据并存储
RX_count++; // 接收计数器加1
if(RX_count > 7) // 如果已经接收到8个数据
{
RX_count = 0; // 接收计数器清0
U1DataFlags.Byte.Data_OK = 1; // 置接收到数据标志
}
}
}
如果上位机发8个字节的数据,程序能正常接收,就是收到的都是0.百思不得其解,向各位请教.谢谢! |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|