[新手园地] 求助关于串口的一些问题,有图

[复制链接]
3128|4
 楼主| leonbaichi 发表于 2011-8-18 15:55 | 显示全部楼层 |阅读模式
本帖最后由 leonbaichi 于 2011-8-18 15:57 编辑

第二个实验是串口,参考的是CUBE侠的例程,开始的时候一切都很美好,我天真的以为。。。  好了打住。先上程序


其中一段代码

    printf("/*=======简单发送实验=======\n");

    {


        uint8_t bInChar[1] ={0x55};  

        printf("\n\n");

        DrvUART_Write(UART_PORT0,bInChar,1);

        printf("\n\n");
   
    }

    printf("==========================*/\n");

    printf("\n\n");   

--------------------------------------------------------------
用的不是printf,而是驱动库里的程序,显示如下



/*=======简单发送实验=======


U

==========================*/


我想本意是输出55的吧,U的ASCII码值是0X55,求助如何正确显示?
PS:
   DrvUART_Write( )的具体输出语句为
int32_t DrvUART_Write(E_UART_PORT    u32Port,uint8_t    *pu8TxBuf,     uint32_t u32WriteBytes)
{
    uint32_t  u32Count, u32delayno;

    UART_T * tUART;

    tUART = (UART_T *)((uint32_t)UART0 + u32Port);  

    for (u32Count=0; u32Count<u32WriteBytes; u32Count++)
    {
       u32delayno = 0;
       while (tUART->FSR.TE_FLAG !=1)                                /* Wait Tx empty and Time-out manner */
       {
               u32delayno++;
               if ( u32delayno >= 0x40000000 )            
                  return E_DRVUART_ERR_TIMEOUT;               
                  
       }
       tUART->DATA = pu8TxBuf[u32Count];                        /* Send UART Data from buffer */
//这句话能看出输出的格式???   
}

    return E_SUCCESS;
   
  
}
                               

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| leonbaichi 发表于 2011-8-18 16:03 | 显示全部楼层
本帖最后由 leonbaichi 于 2011-8-18 16:09 编辑

另外综合一下:在另一个坛友的帖子里 https://bbs.21ic.com/viewthread.php?tid=255512&highlight=

主要代码!
/*---------------------------------------------------------------------------------------------------------*/
/* */
/* Copyright(c) 2011 Nuvoton Technology Corp. All rights reserved. */
/* */
/*---------------------------------------------------------------------------------------------------------*/
#include "includes.h" //包含所需的头文件
/*************************************************************************************
** Function name: main
** Descriptions: usart
** input parameters: 无
** output parameters: 无
** Returned value: 无
*************************************************************************************/
uint8_t buffer[4] = {0X011,0x12,0x13,0x14};
int main (void)
{
Set_System(); //封装一些初始化模块
while(1)
{
DrvUART_Write(UART_PORT0,buffer,4) ;
delay_ms(1000);

}
}

/////////////////////////////////////////////
运行例程之后如果串口软件不是选中16进制显示的话是乱码! 若选中,则OK了,不知为何,               

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
电子write_cai 发表于 2011-8-18 16:09 | 显示全部楼层
 楼主| leonbaichi 发表于 2011-8-18 16:10 | 显示全部楼层
请各位高手驻足给点意见!
lixiaoxu2meng 发表于 2011-8-19 07:22 | 显示全部楼层
2# leonbaichi
发送的就是16进制的 当然就得选择16进制了 要不然你发送ascii不选择16进制就不会错了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

41

帖子

1

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