用的vdsp呢,用示波器可以看出数据,但是通过u转传,接到串口助手就出现上述的问题,u转传是hl340
void UARTinit(unsigned int rate,unsigned int system_clk)
{
unsigned int div;
div = system_clk/rate/16;
*pUART_GCTL=0x0009;
*pUART_LCR=0x0080; // DLAB=1 允许访问DLL 和DLH
*pUART_DLL=div;
*pUART_DLH=div>>8; //DLL DLH分别赋值
*pUART_LCR=0x0003; //允许访问 RBR THR 和IER
*pUART_IER=0x0001; //接收中断允许
}
EX_INTERRUPT_HANDLER(UART_ISR)
{
if(*pUART_LSR&DR) //判断是否有新的数据。
{
if(cont>512) //防止buff溢出,测试代码,将接收到的数据重复写入512字节的buff
cont = 0;
RXbuf[cont]=*pUART_RBR;
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;
}
void Test_TX(void)
{
int i;
for(i=0;i<50;i++) //发送测试函数,将生成的数据通过IR发送出去。
{
*pUART_THR=TXbuf[i];
while(!(*pUART_LSR&0x0020));
}
}
main()
{
Set_PLL(16,4);
Init_EBIU();
Init_SDRAM();
UARTinit(9600,1e8); //9600波特率,100MHz系统时钟
Init_Interrupts();
while(1)
Test_TX();
}
「该帖子被 eggplant 在 2013-12-30 09:34:34 编辑过」