[技术问答] 新塘单片机N76E003 官方demo的使用问题

[复制链接]
2775|11
 楼主| 1183584502 发表于 2018-2-23 17:34 | 显示全部楼层 |阅读模式
第一次使用这款单片机,将官方的UART0 程序下载进去,接受波特率和程序中设置是一样的,为何会出现接收数据乱码的问题。接受到的和发送的完全对不上。该如何查找问题源头?
09kk小熊 发表于 2018-2-24 10:39 | 显示全部楼层
demo程序应该没有问题的,发送和接收短接,或者加我
734774645 发表于 2018-2-24 11:40 | 显示全部楼层
示波器看看波形是啥情况。
玛尼玛尼哄 发表于 2018-2-24 18:43 | 显示全部楼层
没遇到乱码的问题,看看是不是不一致,或者设置的格式不一致。
小明的同学 发表于 2018-2-25 13:51 | 显示全部楼层
应该不会有问题,那么多人都用过
xuanhuanzi 发表于 2018-2-25 20:02 | 显示全部楼层
官方的例子原封不动的下载进去也不行?
xinxianshi 发表于 2018-2-26 18:19 | 显示全部楼层
解决了吧,怎么也不说一声为何
xixi2017 发表于 2018-2-26 20:20 | 显示全部楼层
换最新版试试
xixi2017 发表于 2018-2-26 20:20 | 显示全部楼层
官方的BSP最近更新了。
稳稳の幸福 发表于 2018-2-26 21:28 | 显示全部楼层
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* Copyright(c) 2017 Nuvoton Technology Corp. All rights reserved.                                         */
  4. /*                                                                                                         */
  5. /*---------------------------------------------------------------------------------------------------------*/

  6. //***********************************************************************************************************
  7. //  Nuvoton Technoledge Corp.
  8. //  Website: http://www.nuvoton.com
  9. //  E-Mail : MicroC-8bit@nuvoton.com
  10. //  Date   : Apr/21/2017
  11. //***********************************************************************************************************

  12. //***********************************************************************************************************
  13. //  File Function: N76E003 UART-0 Mode1 demo code
  14. //***********************************************************************************************************
  15. #include "N76E003.h"
  16. #include "Common.h"
  17. #include "Delay.h"
  18. #include "SFR_Macro.h"
  19. #include "Function_define.h"

  20. /******************************************************************************
  21. * FUNCTION_PURPOSE: Serial interrupt, echo received data.
  22. * FUNCTION_INPUTS : P0.7(RXD) serial input
  23. * FUNCTION_OUTPUTS: P0.6(TXD) serial output
  24. * Following setting in Common.c
  25. ******************************************************************************/
  26. #if 0
  27. //void InitialUART0_Timer1(UINT32 u32Baudrate)    //T1M = 1, SMOD = 1
  28. //{
  29. //                P06_Quasi_Mode;               
  30. //                P07_Quasi_Mode;
  31. //       
  32. //    SCON = 0x52;     //UART0 Mode1,REN=1,TI=1
  33. //    TMOD |= 0x20;    //Timer1 Mode1
  34. //   
  35. //    set_SMOD;        //UART0 Double Rate Enable
  36. //    set_T1M;
  37. //    clr_BRCK;        //Serial port 0 baud rate clock source = Timer1

  38. //
  39. //#ifdef FOSC_160000
  40. //    TH1 = 256 - (1000000/u32Baudrate+1);               /*16 MHz */
  41. //#endif           
  42. //    set_TR1;
  43. //}
  44. ////---------------------------------------------------------------
  45. //void InitialUART0_Timer3(UINT32 u32Baudrate) //use timer3 as Baudrate generator
  46. //{
  47. //                P06_Quasi_Mode;
  48. //                P07_Quasi_Mode;       
  49. //       
  50. //    SCON = 0x52;     //UART0 Mode1,REN=1,TI=1
  51. //    set_SMOD;        //UART0 Double Rate Enable
  52. //    T3CON &= 0xF8;   //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1)
  53. //    set_BRCK;        //UART0 baud rate clock source = Timer3

  54. //#ifdef FOSC_160000
  55. //        RH3    = HIBYTE(65536 - (1000000/u32Baudrate)-1);                  /*16 MHz */
  56. //  RL3    = LOBYTE(65536 - (1000000/u32Baudrate)-1);                        /*16 MHz */
  57. //#endif
  58. //    set_TR3;         //Trigger Timer3
  59. //}
  60. #endif

  61. /*******************************************************************************
  62. * FUNCTION_PURPOSE: Main function
  63. ******************************************************************************/
  64. void main (void)
  65. {

  66. #if 0       
  67.     InitialUART0_Timer1(9600);           //UART0 Baudrate initial,T1M=0,SMOD=0
  68.     while(1)
  69.     Send_Data_To_UART0(0x55);
  70. #else
  71.                 InitialUART0_Timer3(115200);
  72.     while(1)
  73.     Send_Data_To_UART0(0x55);
  74. #endif
  75.                        
  76.        
  77.                
  78. }
  79.   

用这个试试。
稳稳の幸福 发表于 2018-2-26 21:28 | 显示全部楼层
BSP用最新的1.04版
nopeace 发表于 2018-3-24 16:25 | 显示全部楼层
如果是有部分乱码,是新塘例程的问题,IO初始化时有不合理的,这一句:32行//                P06_Quasi_Mode;   改成推挽输出。
如果是全部乱码,是可能你没有设置FOSC。
新塘的好多例程,只能出一些功能,但要不出错,要改一些东西,它们出的这些例程非常不严谨。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

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