打印
[新手园地]

求助关于串口的一些问题,有图

[复制链接]
1632|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 leonbaichi 于 2011-8-18 15:57 编辑

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

CUBE助学板入门实验1 M0串口实验.rar (1011.45 KB)
其中一段代码

    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=
LI-USART.rar (996.07 KB)
主要代码!
/*---------------------------------------------------------------------------------------------------------*/
/* */
/* 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 | 只看该作者
:o

使用特权

评论回复
地板
leonbaichi|  楼主 | 2011-8-18 16:10 | 只看该作者
请各位高手驻足给点意见!

使用特权

评论回复
5
lixiaoxu2meng| | 2011-8-19 07:22 | 只看该作者
2# leonbaichi
发送的就是16进制的 当然就得选择16进制了 要不然你发送ascii不选择16进制就不会错了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

41

帖子

1

粉丝