void Test_TX(void)
{
int i,j;
for(i=0;i<50;i++) //发送测试函数,将生成的数据通过IR发送出去。
{
*pUART_THR=TXbuf[i];
j=*pUART_THR;
printf("j is %ld\n",j);
while(!(*pUART_LSR&0x0020));
}
这一段在第六课uart的讲解中。
打印出来的J为什么都是0.
测试函数没有起作用 pUART_THR 好像没有发送数据啊 这个程序写接收中断函数也没有起作用
EX_INTERRUPT_HANDLER(UART_ISR)
{
if(*pUART_LSR&DR) //判断是否有新的数据。
{
if(cont>512) //防止buff溢出,测试代码,将接收到的数据重复写入512字节的buff
cont = 0;
RXbuf[cont]=*pUART_RBR;
cont++;
printf("%c\n",RXbuf[cont]);
}
}
void Init_Interrupts(void)
{
*pSIC_IAR0 = 0xffffffff;
*pSIC_IAR1 = 0xf3ffffff; // UART 中断定义
*pSIC_IAR2 = 0xfffFFffF;
register_handler(ik_ivg10, UART_ISR); // UART ISR -> IVG 10
*pSIC_IMASK = 0x00004000;
}
没有进入中断,求详解