串口为何不能发送数据?

[复制链接]
3979|5
 楼主| ningling_21 发表于 2011-8-3 10:30 | 显示全部楼层 |阅读模式
芯片:NXP2103
环境: IAR
程序下载后,串口发送数据不成功,为何?

程序如下:

主程序:
PINSEL0 =(PINSEL0 & (~0X0F)) | 0X05; //P0.0,P0.1设置为TXD RXD UART0

       Init_uart0();

        

       IODIR  |= (1 << (LED_PIN));         //使能端口的方向为输出

       LED_OFF;

       while(1)

       {

       for (i = 0; i < 100000; i++);

       //LED_ON;

       for (i = 0; i < 200000; i++);

       //LED_OFF;

       for (i = 0; i < 100000; i++);

       //LED_ON;

       for (i = 0; i < 200000; i++);

       //LED_OFF;

       for (i = 0; i < 100000; i++);

       //LED_ON;

       for (i = 0; i < 500000; i++);

       for (i = 0; i < 500000; i++);

      

       for (i = 0; i < 500000; i++);

       //PCON=0X01;                       //进入空闲模式

       //PCON=0X02;                       //进入掉电模式

       LED_ON;

       Uart_sendbyte(0x30) ;

       LED_OFF;

     }   

/********************************************************************************

初始化串口0

********************************************************************************/

void Init_uart0(void)

{

    uint Fdiv ;



  //#define   FOSC          11059200

  //#define   Uart_Bps      115200

  U0LCR =0X83;

  Fdiv= (FOSC /16)/Uart_Bps;

  U0DLM=Fdiv/256;

  U0DLL=Fdiv%256;

  U0LCR=0X03;

}



/********************************************************************************

向串口发送一个字节数据

查询方式

********************************************************************************/

void Uart_sendbyte(uchar dat)

{

   U0THR=dat;

   while((U0LSR & 0X40)==0X00);   //等待发送完毕

     

}
 楼主| ningling_21 发表于 2011-8-3 21:54 | 显示全部楼层
沙发留着...
 楼主| ningling_21 发表于 2011-8-6 09:45 | 显示全部楼层
等待...
yang_max 发表于 2011-8-6 23:33 | 显示全部楼层
没用过这个片子,建议你参考官方的例程 修改或引用
 楼主| ningling_21 发表于 2011-8-8 23:03 | 显示全部楼层
问题已解决:MAX232芯片居然不支持3.3V供电,不正常工作导致.
里昻_Lyon 发表于 2011-8-8 23:14 | 显示全部楼层
5# ningling_21

可以换用max3232,3.3V供电。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5015

主题

17845

帖子

51

粉丝
快速回复 在线客服 返回列表 返回顶部