[DemoCode下载] ML51的Printf用法

[复制链接]
92|9
 楼主 | 2019-8-31 22:17 | 显示全部楼层 |阅读模式
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* Copyright(c) 2019 Nuvoton Technology Corp. All rights reserved.                                         */
  4. /*                                                                                                         */
  5. /*---------------------------------------------------------------------------------------------------------*/

  6. //***********************************************************************************************************
  7. //  Website: http://www.nuvoton.com
  8. //  E-Mail : MicroC-8bit@nuvoton.com
  9. //***********************************************************************************************************

  10. #include "ML51.h"

  11. /**
  12. * [url=home.php?mod=space&uid=247401]@brief[/url]       UART0 setting as prinrf output.
  13. * @param       None
  14. * [url=home.php?mod=space&uid=266161]@return[/url]      None
  15. * [url=home.php?mod=space&uid=1543424]@Details[/url]     purchar.c setting use UART0, or use keil default.
  16. */

  17. void main (void)
  18. {
  19.        
  20. /**
  21. For UART0 P3.1 asTXD output setting
  22. * include uart.c in Common Setting for UART0
  23. */
  24.                 MFP_P16_UART0_TXD;                                                                                                                        // UART0 TXD use P5.3
  25.                 P16_QUASI_MODE;                                                                                                                           // set P5.3 as Quasi mode for UART0 trasnfer

  26. /**
  27. For UART0 initial setting
  28. * include uart.c in Common Setting for UART0
  29. */
  30.                 UART_Open(24000000,UART0_Timer1,115200);                                // Open UART0 use timer3 as baudrate generate and baud rate = 115200en(24000000,UART0_Timer1,115200);       
  31.                 ENABLE_UART0_PRINTF;                                                                                                                                                // printf must first set TI =1;
  32.                
  33. /**
  34.         UART1 loop test
  35.         UART1 TXD1 send data received by RXD1 pin. Connect TXD1 pin and RXD1 pin check result.
  36. */
  37.                 while(1)
  38.                 {
  39. //                        printf ("\n hello world! " );
  40.                         printf ("a" );
  41.                         Timer2_Delay(24000000,128,1000,1000);
  42.                 }

  43. }


复制代码


使用特权

评论回复
 楼主 | 2019-8-31 22:18 | 显示全部楼层
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* Copyright(c) 2019 Nuvoton Technology Corp. All rights reserved.                                         */
  4. /*                                                                                                         */
  5. /*---------------------------------------------------------------------------------------------------------*/

  6. //***********************************************************************************************************
  7. //  Website: http://www.nuvoton.com
  8. //  E-Mail : MicroC-8bit@nuvoton.com
  9. //***********************************************************************************************************

  10. #include "ML51.h"

  11. /**
  12. * @brief       UART1 use as printf.
  13. * @param       None
  14. * @return      None
  15. * @details     None
  16. */


  17. void main (void)
  18. {

  19. /**
  20. For UART1 P2.3 as TXD1 / P2.3 as RXD1 GPIO setting
  21. * include gpio.c in Common Setting for UART0
  22. */
  23.     MFP_P23_UART1_TXD;                              // UART0 TXD use P0.5
  24.     P23_QUASI_MODE;                                 // set P0.5 and P0.6 as Quasi mode for UART0 trasnfer
  25. /**
  26. For UART1 initial setting
  27. * include uart.c in Common Setting for UART0
  28. */
  29.     UART_Open(24000000,UART1,115200);              // Open UART0 use timer1 as baudrate generate and baud rate = 115200en(24000000,UART0_Timer1,115200);        // Open UART0 use timer1 as baudrate generate and baud rate = 115200
  30.     set_S1CON_TI_1;                                // printf must first set TI_1 =1;
  31.    
  32. /**
  33.   UART1 loop test
  34.   UART1 TXD1 send data received by RXD1 pin. Connect TXD1 pin and RXD1 pin check result.
  35. */
  36.     while(1)
  37.     {
  38.       printf ("\n hello world! " );
  39.       Timer2_Delay(24000000,128,1000,1000);        //Means timer base 24MHz, divider 128, delay time 100 ms (100000us)
  40.     }
  41. }
复制代码

使用特权

评论回复
 楼主 | 2019-8-31 22:19 | 显示全部楼层
可以看出使用不同的串口,是略有差异的。

使用特权

评论回复
 楼主 | 2019-8-31 22:20 | 显示全部楼层
    set_S1CON_TI_1;                                // printf must first set TI_1 =1;
串口1需要使用上面的
串口0需要使用下面的
                ENABLE_UART0_PRINTF;                                                        // printf must first set TI =1;

使用特权

评论回复
 楼主 | 2019-8-31 22:20 | 显示全部楼层
我就纳闷了,为何不用宏统一一下呢。是不是

使用特权

评论回复
 楼主 | 2019-8-31 22:25 | 显示全部楼层
#define    ENABLE_UART0_PRINTF            set_SCON_TI            //For printf function must setting TI = 1

#define    ENABLE_UART1_PRINTF            set_S1CON_TI_1
仔细查看头文件,实际上是已经这么做了,所以写例程的程序员真是个**,希望这里修改一下。

使用特权

评论回复
| 2019-9-9 00:07 | 显示全部楼层
楼上说的很科学。

使用特权

评论回复
| 2019-9-11 00:05 | 显示全部楼层
是的,如果统一起来跟好了。

使用特权

评论回复
| 2019-9-11 00:05 | 显示全部楼层
是的,如果统一起来跟好了。

使用特权

评论回复
| 2019-9-11 00:06 | 显示全部楼层
不知道为何故意写成两种形式

使用特权

评论回复
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

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