[技术问答] n76e003 GPIO拉高会出现其他电平问题,能帮看看吗?

[复制链接]
547|15
 楼主 | 2019-8-27 14:09 | 显示全部楼层 |阅读模式
本帖最后由 Chauncyboy 于 2019-8-27 14:15 编辑

     拉高电平每隔一段固定的时间会出现其他的电平数据,没有操作的GPIO也会自动出现这样的电平数据,拉低电平就正常,请问各位,这个是什么问题?
     刚接触这个MCU,我是用个最小系统板调试的,用逻辑分析仪跟示波器采集到都是同样的情况,烧录官网的例程也是这样子,求解!
315605d64c93e042d8.png

   代码只有简单几句:

#include "N76E003.h"
#include "SFR_Macro.h"
#include "Function_define.h"
#include "Common.h"
#include "Delay.h"

void main(void)
{
        //Set_All_GPIO_Quasi_Mode; //设置所有IO为双向模式
        P14_PushPull_Mode;
        P14=1;
        P00=0;
        //P30=0;
        while(1)
        {
        }
}




使用特权

评论回复

评论

Chauncyboy 2019-8-27 15:43 回复TA
已经确认了,异常是由与下载器连接,然后RST、CLK、DAT不断发信号下来导致的,断开链接就不会下发信号,就正常了 
Chauncyboy 2019-8-27 15:28 回复TA
问题解决了,是因为我烧录完程序后,没有断开下载器的连接,断开之后就正常了,不过具体原因还不知道,可能是连着的时候下载器信号线会定期发信号下来导致的,具体原因我还要用示波器分析确认才行 
Chauncyboy 2019-8-27 14:13 回复TA
是我配置哪里配置不对吗? 
Chauncyboy 2019-8-27 14:13 回复TA
求解答 
Chauncyboy 2019-8-27 14:12 回复TA
在线等答疑 
| 2019-8-27 14:20 | 显示全部楼层
N76E003问题很多的,输入的端口都必须接上下拉电阻,准双向口坑得很

使用特权

评论回复
| 2019-8-27 14:25 | 显示全部楼层
哪会有这么多问题的,应该是WDT周期复位了吧,或者一直连接ICP没有断开连接

使用特权

评论回复
 楼主 | 2019-8-27 14:27 | 显示全部楼层
gx_huang 发表于 2019-8-27 14:25
哪会有这么多问题的,应该是WDT周期复位了吧,或者一直连接ICP没有断开连接 ...

我没有对WDT进行操作,也会导致复位的吗?还是要专门对这个进行配置?

使用特权

评论回复
 楼主 | 2019-8-27 15:06 | 显示全部楼层
poortee 发表于 2019-8-27 14:20
N76E003问题很多的,输入的端口都必须接上下拉电阻,准双向口坑得很

我刚才试了,重新上拉,没效果,上拉之后,只采集到被拉高的电平,我修改程序进行电平翻转,结果电平翻转不了

使用特权

评论回复
| 2019-8-27 15:13 | 显示全部楼层
Chauncyboy 发表于 2019-8-27 14:27
我没有对WDT进行操作,也会导致复位的吗?还是要专门对这个进行配置?

你下载程序时有修改WDT相关的配置字吗?
如果ICP下载线连接主板,没有断开连接,也是会异常的。

使用特权

评论回复
| 2019-8-27 21:01 | 显示全部楼层
是不是这个管脚比较特殊。比如有什么共用的端口,要先设置一下为数字输入输出接口。然后再搞。

使用特权

评论回复
| 2019-8-27 21:42 | 显示全部楼层
你这程序错了。

使用特权

评论回复
| 2019-8-27 21:42 | 显示全部楼层
给你个参考
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* Copyright(c) 2017 Nuvoton Technology Corp. All rights reserved.                                         */
  4. /*                                                                                                         */
  5. /*---------------------------------------------------------------------------------------------------------*/

  6. //***********************************************************************************************************
  7. //  Website: http://www.nuvoton.com
  8. //  E-Mail : MicroC-8bit@nuvoton.com
  9. //  Date   : Jan/21/2017
  10. //***********************************************************************************************************

  11. //***********************************************************************************************************
  12. //  File Function: N76E003 GPIO demo code
  13. //***********************************************************************************************************
  14. #include "N76E885.h"
  15. #include "SFR_Macro.h"
  16. #include "Function_define.h"
  17. #include "Common.h"
  18. #include "Delay.h"

  19. //*****************  The Following is in define in Fucntion_define.h  ***************************
  20. //****** Always include Function_define.h call the define you want, detail see main(void) *******
  21. //***********************************************************************************************
  22. #if 0
  23. ////------------------- Define Port as Quasi mode  -------------------
  24. //#define P00_Quasi_Mode                                P0M1&=~SET_BIT0;P0M2&=~SET_BIT0
  25. //#define P01_Quasi_Mode                                P0M1&=~SET_BIT1;P0M2&=~SET_BIT1
  26. //#define P02_Quasi_Mode                                P0M1&=~SET_BIT2;P0M2&=~SET_BIT2
  27. //#define P03_Quasi_Mode                                P0M1&=~SET_BIT3;P0M2&=~SET_BIT3
  28. //#define P04_Quasi_Mode                                P0M1&=~SET_BIT4;P0M2&=~SET_BIT4
  29. //#define P05_Quasi_Mode                                P0M1&=~SET_BIT5;P0M2&=~SET_BIT5
  30. //#define P06_Quasi_Mode                                P0M1&=~SET_BIT6;P0M2&=~SET_BIT6
  31. //#define P07_Quasi_Mode                                P0M1&=~SET_BIT7;P0M2&=~SET_BIT7
  32. //#define P10_Quasi_Mode                                P1M1&=~SET_BIT0;P1M2&=~SET_BIT0
  33. //#define P11_Quasi_Mode                                P1M1&=~SET_BIT1;P1M2&=~SET_BIT1
  34. //#define P12_Quasi_Mode                                P1M1&=~SET_BIT2;P1M2&=~SET_BIT2
  35. //#define P13_Quasi_Mode                                P1M1&=~SET_BIT3;P1M2&=~SET_BIT3
  36. //#define P14_Quasi_Mode                                P1M1&=~SET_BIT4;P1M2&=~SET_BIT4
  37. //#define P15_Quasi_Mode                                P1M1&=~SET_BIT5;P1M2&=~SET_BIT5
  38. //#define P16_Quasi_Mode                                P1M1&=~SET_BIT6;P1M2&=~SET_BIT6
  39. //#define P17_Quasi_Mode                                P1M1&=~SET_BIT7;P1M2&=~SET_BIT7
  40. //#define P20_Quasi_Mode                                P2M1&=~SET_BIT0;P2M2&=~SET_BIT0
  41. //#define P30_Quasi_Mode                                P3M1&=~SET_BIT0;P3M2&=~SET_BIT0
  42. ////------------------- Define Port as Push Pull mode -------------------
  43. //#define P00_PushPull_Mode                        P0M1|=SET_BIT0;P0M2&=~SET_BIT0
  44. //#define P01_PushPull_Mode                        P0M1|=SET_BIT1;P0M2&=~SET_BIT1
  45. //#define P02_PushPull_Mode                        P0M1&=~SET_BIT2;P0M2|=SET_BIT2
  46. //#define P03_PushPull_Mode                        P0M1&=~SET_BIT3;P0M2|=SET_BIT3
  47. //#define P04_PushPull_Mode                        P0M1&=~SET_BIT4;P0M2|=SET_BIT4
  48. //#define P05_PushPull_Mode                        P0M1&=~SET_BIT5;P0M2|=SET_BIT5
  49. //#define P06_PushPull_Mode                        P0M1&=~SET_BIT6;P0M2|=SET_BIT6
  50. //#define P07_PushPull_Mode                        P0M1&=~SET_BIT7;P0M2|=SET_BIT7
  51. //#define P10_PushPull_Mode                        P1M1&=~SET_BIT0;P1M2|=SET_BIT0
  52. //#define P11_PushPull_Mode                        P1M1&=~SET_BIT1;P1M2|=SET_BIT1
  53. //#define P12_PushPull_Mode                        P1M1&=~SET_BIT2;P1M2|=SET_BIT2
  54. //#define P13_PushPull_Mode                        P1M1&=~SET_BIT3;P1M2|=SET_BIT3
  55. //#define P14_PushPull_Mode                        P1M1&=~SET_BIT4;P1M2|=SET_BIT4
  56. //#define P15_PushPull_Mode                        P1M1&=~SET_BIT5;P1M2|=SET_BIT5
  57. //#define P16_PushPull_Mode                        P1M1&=~SET_BIT6;P1M2|=SET_BIT6
  58. //#define P17_PushPull_Mode                        P1M1&=~SET_BIT7;P1M2|=SET_BIT7
  59. //#define P20_PushPull_Mode                        P2M1&=~SET_BIT0;P2M2|=SET_BIT0
  60. //#define P30_PushPull_Mode                        P3M1&=~SET_BIT0;P3M2|=SET_BIT0
  61. ////------------------- Define Port as Input Only mode -------------------
  62. //#define P00_Input_Mode                                P0M1|=SET_BIT0;P0M2&=~SET_BIT0
  63. //#define P01_Input_Mode                                P0M1|=SET_BIT1;P0M2&=~SET_BIT1
  64. //#define P02_Input_Mode                                P0M1|=SET_BIT2;P0M2&=~SET_BIT2
  65. //#define P03_Input_Mode                                P0M1|=SET_BIT3;P0M2&=~SET_BIT3
  66. //#define P04_Input_Mode                                P0M1|=SET_BIT4;P0M2&=~SET_BIT4
  67. //#define P05_Input_Mode                                P0M1|=SET_BIT5;P0M2&=~SET_BIT5
  68. //#define P06_Input_Mode                                P0M1|=SET_BIT6;P0M2&=~SET_BIT6
  69. //#define P07_Input_Mode                                P0M1|=SET_BIT7;P0M2&=~SET_BIT7
  70. //#define P10_Input_Mode                                P1M1|=SET_BIT0;P1M2&=~SET_BIT0
  71. //#define P11_Input_Mode                                P1M1|=SET_BIT1;P1M2&=~SET_BIT1
  72. //#define P12_Input_Mode                                P1M1|=SET_BIT2;P1M2&=~SET_BIT2
  73. //#define P13_Input_Mode                                P1M1|=SET_BIT3;P1M2&=~SET_BIT3
  74. //#define P14_Input_Mode                                P1M1|=SET_BIT4;P1M2&=~SET_BIT4
  75. //#define P15_Input_Mode                                P1M1|=SET_BIT5;P1M2&=~SET_BIT5
  76. //#define P16_Input_Mode                                P1M1|=SET_BIT6;P1M2&=~SET_BIT6
  77. //#define P17_Input_Mode                                P1M1|=SET_BIT7;P1M2&=~SET_BIT7
  78. //#define P20_Input_Mode                                P2M1|=SET_BIT0;P2M2&=~SET_BIT0
  79. //#define P30_Input_Mode                                P3M1|=SET_BIT0;P3M2&=~SET_BIT0
  80. ////-------------------Define Port as Open Drain mode -------------------
  81. //#define P00_OpenDrain_Mode                P0M1|=SET_BIT0;P0M2|=SET_BIT0
  82. //#define P01_OpenDrain_Mode                P0M1|=SET_BIT1;P0M2|=SET_BIT1
  83. //#define P02_OpenDrain_Mode                P0M1|=SET_BIT2;P0M2|=SET_BIT2
  84. //#define P03_OpenDrain_Mode                P0M1|=SET_BIT3;P0M2|=SET_BIT3
  85. //#define P04_OpenDrain_Mode                P0M1|=SET_BIT4;P0M2|=SET_BIT4
  86. //#define P05_OpenDrain_Mode                P0M1|=SET_BIT5;P0M2|=SET_BIT5
  87. //#define P06_OpenDrain_Mode                P0M1|=SET_BIT6;P0M2|=SET_BIT6
  88. //#define P07_OpenDrain_Mode                P0M1|=SET_BIT7;P0M2|=SET_BIT7
  89. //#define P10_OpenDrain_Mode                P1M1|=SET_BIT0;P1M2|=SET_BIT0
  90. //#define P11_OpenDrain_Mode                P1M1|=SET_BIT1;P1M2|=SET_BIT1
  91. //#define P12_OpenDrain_Mode                P1M1|=SET_BIT2;P1M2|=SET_BIT2
  92. //#define P13_OpenDrain_Mode                P1M1|=SET_BIT3;P1M2|=SET_BIT3
  93. //#define P14_OpenDrain_Mode                P1M1|=SET_BIT4;P1M2|=SET_BIT4
  94. //#define P15_OpenDrain_Mode                P1M1|=SET_BIT5;P1M2|=SET_BIT5
  95. //#define P16_OpenDrain_Mode                P1M1|=SET_BIT6;P1M2|=SET_BIT6
  96. //#define P17_OpenDrain_Mode                P1M1|=SET_BIT7;P1M2|=SET_BIT7
  97. //#define P20_OpenDrain_Mode                P2M1|=SET_BIT0;P2M2|=SET_BIT0
  98. //#define P30_OpenDrain_Mode                P3M1|=SET_BIT0;P3M2|=SET_BIT0
  99. ////--------- Define all port as quasi mode ---------
  100. //#define Set_All_GPIO_Quasi_Mode                        P0M1=0;P0M1=0;P1M1=0;P1M2=0;P2M1=0;P2M2=0;P3M1=0;P3M2=0
  101. #endif

  102. /*------------------------------------------------
  103. The main C function.  Program execution starts
  104. here after stack initialization.
  105. ------------------------------------------------*/

  106. //void PinInterrupt_ISR (void) interrupt 7
  107. //{
  108. //        if (PIF == 0x80)
  109. //        {
  110. //                        clr_GPIO1;
  111. //                        Timer1_Delay10ms(10);
  112. //                        set_GPIO1;
  113. //                        Timer1_Delay10ms(10);
  114. //                        clr_GPIO1;
  115. //                        Timer1_Delay10ms(10);
  116. //                        set_GPIO1;
  117. //                        Timer1_Delay10ms(10);   
  118. //                        clr_GPIO1;
  119. //                        Timer1_Delay10ms(10);
  120. //                        set_GPIO1;
  121. //                        Timer1_Delay10ms(10);
  122. //                        clr_GPIO1;
  123. //                        Timer1_Delay10ms(10);
  124. //                        set_GPIO1;
  125. //                        Timer1_Delay10ms(10);   
  126. //        }
  127. //}



  128. sfr PORDIS        = 0xFD;


  129. void LED_DATA0(void)
  130. {
  131.         P10 = 1 ;
  132.         P10 = 0;
  133.         P10 = 0;
  134. }

  135. void LED_DATA1(void)
  136. {
  137.         P10 = 1 ;
  138.         P10 = 1;
  139.         P10 = 1;
  140.                 P10 = 1;
  141.                 P10 = 1;
  142.         P10 = 0;
  143. }


  144. void main (void)
  145. {
  146.         Set_All_GPIO_Quasi_Mode;                                        // Define in Function_define.h
  147.        

  148.         P10_PushPull_Mode;
  149. P1SR = 0x01;
  150.   


  151.                 LED_DATA0();
  152.                 LED_DATA1();
  153.                 LED_DATA0();
  154.                 LED_DATA1();
  155.                 LED_DATA0();
  156.                 LED_DATA1();       
  157.                 LED_DATA0();
  158.                 LED_DATA1();
  159.                 LED_DATA0();
  160.                 LED_DATA1();
  161.                 LED_DATA0();
  162.                 LED_DATA1();
  163.                 LED_DATA0();
  164.                 LED_DATA1();

  165.                 LED_DATA0();
  166.                 LED_DATA1();
  167.                                 LED_DATA0();
  168.                 LED_DATA1();
  169.                                 LED_DATA0();
  170.                 LED_DATA1();
  171. while(1);

  172.        
  173.        
  174. }



复制代码

使用特权

评论回复
| 2019-8-27 21:43 | 显示全部楼层
        Set_All_GPIO_Quasi_Mode;  
这个不能注释掉。

使用特权

评论回复
| 2019-8-27 21:43 | 显示全部楼层
我看官方例子就有,你怎么给注释掉了。

使用特权

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

本版积分规则

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

快速回复

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

论坛热帖

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