[DemoCode下载] ML51串口接收演示。

[复制链接]
911|10
 楼主| mintspring 发表于 2020-7-23 10:51 | 显示全部楼层 |阅读模式
  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 Transfer and receive with interrupt subroutine.
  13. * @param       None
  14. * [url=home.php?mod=space&uid=266161]@return[/url]      None
  15. * [url=home.php?mod=space&uid=1543424]@Details[/url]     Result stroage in XRAM UIDBuffer[0:8];
  16. */

  17. unsigned char uart_receive_data,bufhead;
  18. bit receiveFlag,bufOverFlag;

  19. unsigned char my[10];
  20. unsigned char i=0;


  21. void Serial_ISR (void) interrupt 4
  22. {
  23.     if (RI)
  24.     {   
  25.         receiveFlag = 1;
  26.         uart_receive_data = SBUF;
  27.         clr_SCON_RI;                                         // Clear RI (Receive Interrupt).
  28.     }
  29.     if (TI)
  30.     {      
  31.         clr_SCON_TI;                                         // Clear TI (Transmit Interrupt).
  32.     }
  33. }


  34. void main (void)
  35. {
  36.     MFP_P46_GPIO;
  37.     P46_PUSHPULL_MODE;
  38. /**
  39. For UART0 P0.5 asTXD output setting
  40. * include uart.c in Common Setting for UART0
  41. */
  42.     MFP_P31_UART0_TXD;                              /* set P3.1 and P3.0 as Quasi mode for UART0 trasnfer */
  43.     MFP_P30_UART0_RXD;
  44.     P31_QUASI_MODE;                                 
  45.     P30_QUASI_MODE;
  46.     UART_Open(24000000,UART0_Timer1,115200);      // Open UART0 use timer1 as baudrate generate and baud rate = 115200
  47.     ENABLE_UART0_PRINTF;
  48. #if 0
  49.     UART_Interrupt_Enable(UART0,Enable);
  50.    
  51.     while(1);   

  52. #else
  53. /**
  54.   UART0 loop test
  55.   UART0 TXD send data received by RXD pin. Connect TXD pin and RXD pin check result.
  56. */  
  57.     do{
  58.       unsigned char temp;
  59.       temp = UART_Receive_Data(UART0);
  60.       UART_Send_Data(UART0,temp);
  61.                        
  62.                         my[i++]=temp;
  63.                         if(i>=10)
  64.                         {
  65.                                 UART_Send_Data(UART0,'a');
  66.                                 for(i=0;i<10;i++)
  67.                                 UART_Send_Data(UART0,my[i]);
  68.                                 for(i=0;i<10;i++)
  69.                                 my[i]=0;
  70.                                 i=0;
  71.                
  72.                         }


  73.                        
  74.     }while(1);
  75. #endif
  76. }





 楼主| mintspring 发表于 2020-7-23 10:52 | 显示全部楼层
在官方例子基础上修改的,
通过定义一个字符串,将电脑发送给MCU的字符存入,然后当存满后,一次打印出来。这里没有采用printf
 楼主| mintspring 发表于 2020-7-23 10:53 | 显示全部楼层
经过测试使用printf的话,就卡住了。。目前还没研究是什么原因。
gaoyang9992006 发表于 2020-7-23 11:59 | 显示全部楼层
试试调试模式。看看能否定位到卡克地方。
幸福小强 发表于 2020-7-23 18:02 | 显示全部楼层
可以可以。
21mengnan 发表于 2020-7-23 20:52 | 显示全部楼层
神神叨叨的,啥意思。
玛尼玛尼哄 发表于 2020-7-23 21:52 | 显示全部楼层
多谢分享。
玛尼玛尼哄 发表于 2020-7-23 21:52 | 显示全部楼层
方法可以。
 楼主| mintspring 发表于 2020-7-23 22:11 | 显示全部楼层
干的漂亮。
643757107 发表于 2020-7-24 21:33 | 显示全部楼层
可以可以,看看学习学习。
jiekou001 发表于 2020-7-25 09:07 | 显示全部楼层
深入学习。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

303

主题

4972

帖子

24

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