[技术问答] N76E003 IO口问题!求解答

[复制链接]
6333|21
 楼主| Lanchel 发表于 2017-4-7 10:22 | 显示全部楼层 |阅读模式
N76E003 的开发板。 可是在使用的时候P0.2和P1.6引脚就是无法输出,我也找到相关的寄存器配置啥的。 烧例程进去也是无法输出,作为串口1的时候,也无输出。 哪位大牛知道这两个IO怎么配置啊?
 楼主| Lanchel 发表于 2017-4-10 18:34 | 显示全部楼层
已找到原因:
    OCD 片上调试功能。 就相当于是仿真一样,所以在插着Nu—link的时候,就是你程序下载完了之后如果不拔插一下电源就会默认一直在OCD的模式,这时候P0.2与P1.6引脚是不作为正常IO功能的。所以解决的方式就是用NU_link下载完成之后,拔插一下电源重新上电(按复位键是不行的)。至于用ICP工具配置,应该都是没有问题的,这个配置软件很好用。
yiyigirl2014 发表于 2017-4-7 11:43 | 显示全部楼层
只能看例程,没这个开发板啊。。多少钱买的?
 楼主| Lanchel 发表于 2017-4-7 11:45 | 显示全部楼层
yiyigirl2014 发表于 2017-4-7 11:43
只能看例程,没这个开发板啊。。多少钱买的?

淘宝看到 150 那个黑色的
 楼主| Lanchel 发表于 2017-4-7 11:46 | 显示全部楼层
我找到原因了  是由于板子的OCD功能限制了这两个引脚,所以要关闭OCD功能引脚才能正常使用。但现在的问题是不会关OCD。。
yiyigirl2014 发表于 2017-4-7 13:10 | 显示全部楼层
那就是板子设计的没有找到关闭的地方了。
yiyigirl2014 发表于 2017-4-7 13:50 | 显示全部楼层
OCD是什么,查不到啊
 楼主| Lanchel 发表于 2017-4-7 13:55 | 显示全部楼层
yiyigirl2014 发表于 2017-4-7 13:50
OCD是什么,查不到啊

N76E003内嵌片上调试功能(OCD),这为软件开发者提供了低成本调试方法,并且N76E003的每一种封装都适用。OCD具有完整的调试程序控制流程,包括8个硬件断点、单步运行、全速运行和非侵入命令的内存访问。OCD系统并不占用任何本地内存,也不和片上外设共享资源。
当OCDEN (CONFIG0.4)配置为0,LOCK (CONFIG0.1)为1时,OCD才能有效。如果芯片已加密,OCD就不能工作。OCD系统使用两线串行接口,OCDDA 和 OCDCK,让目标设备和调试控制器建立通讯。OCDDA是输入/输出引脚,调试时用作数据传输,OCDCK是输入口,调试时传输数据同步用的时钟。P2.0/ ̅̅̅̅̅引脚也是必不可少的,它是用来控制OCD模式进入和退出的。N76E003的OCD和ICP功能是共用这3个引脚。

yiyigirl2014 发表于 2017-4-7 14:42 | 显示全部楼层
那么开启关闭就应该是在系统初始化的代码里设置那个功能了。多功能的引脚一般都需要在系统初始化阶段进行配置。
mcuzhuanyong 发表于 2017-4-7 16:06 | 显示全部楼层
可以关闭OCD  在ICP工具中,配置中关闭
 楼主| Lanchel 发表于 2017-4-7 16:39 | 显示全部楼层
mcuzhuanyong 发表于 2017-4-7 16:06
可以关闭OCD  在ICP工具中,配置中关闭

嗯 是的。 我用了这个NuMicro_ICP_Programming_Tool的工具,然后根据用户手册中的配置,显示已经刷新成功了,但是结果却是那两个IO依然不能用,不知道是哪里刷的有问题了。 但是我这样刷看门狗的配置是成功的,成功关闭了看门狗。 很纳闷。
mcuzhuanyong 发表于 2017-4-7 16:49 | 显示全部楼层
Lanchel 发表于 2017-4-7 16:39
嗯 是的。 我用了这个NuMicro_ICP_Programming_Tool的工具,然后根据用户手册中的配置,显示已经刷新成功 ...

在这个地方取消OCD ,然后回到原来界面,更新配置处打勾,烧录完成后,一定要重新上下电
QQ截图20170407164719.jpg

评分

参与人数 1威望 +3 收起 理由
zhuomuniao110 + 3 很给力!

查看全部评分

 楼主| Lanchel 发表于 2017-4-7 17:27 | 显示全部楼层
mcuzhuanyong 发表于 2017-4-7 16:49
在这个地方取消OCD ,然后回到原来界面,更新配置处打勾,烧录完成后,一定要重新上下电 ...

按照你这这个配 烧进去结果还是不行。。。。
rwbycc 发表于 2017-4-7 18:50 | 显示全部楼层
P0.2和P1.6有没有设置成准双向模式
 楼主| Lanchel 发表于 2017-4-7 20:23 | 显示全部楼层
rwbycc 发表于 2017-4-7 18:50
P0.2和P1.6有没有设置成准双向模式

有的。 可是还是不行,会不会还有什么寄存器需要再配置?
rwbycc 发表于 2017-4-8 09:59 | 显示全部楼层
Lanchel 发表于 2017-4-7 20:23
有的。 可是还是不行,会不会还有什么寄存器需要再配置?

P1.6和P0.2作为串口时必须先置1
zhuomuniao110 发表于 2017-4-8 11:13 | 显示全部楼层
mcuzhuanyong 发表于 2017-4-7 16:49
在这个地方取消OCD ,然后回到原来界面,更新配置处打勾,烧录完成后,一定要重新上下电 ...

给力,第一次知道在这配置。
qwe12377yu 发表于 2017-4-13 11:06 | 显示全部楼层
这个能通过代码来禁用,我尝试了,还是不行啊,哪个大神成功的配置了
zhuotuzi 发表于 2017-4-13 21:20 | 显示全部楼层
有个例程不知道靠谱不
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* Copyright(c) 2016 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/2016
  11. //***********************************************************************************************************

  12. //***********************************************************************************************************
  13. //  File Function: N76E003 GPIO demo code
  14. //***********************************************************************************************************

  15. #include <stdio.h>
  16. #include "N76E003.h"
  17. #include "Common.h"
  18. #include "Delay.h"
  19. #include "SFR_Macro.h"
  20. #include "Function_Define.h"


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

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

  108. void main (void)
  109. {
  110.         Set_All_GPIO_Quasi_Mode;                                        // Define in Function_define.h
  111.         InitialUART0_Timer3(115200);
  112.         set_CLOEN;  
  113.   
  114.        
  115.   while(1)
  116.   {
  117.                         clr_GPIO1;                                                                                                // Tiny board GPIO1 LED define in Common.h
  118.                         Timer2_Delay1ms(300);
  119.                         set_GPIO1;
  120.                         Timer2_Delay1ms(300);
  121.                         Send_Data_To_UART0(0x55);                                        //UART0 send ascii "U"
  122.   }
  123. }


qwe12377yu 发表于 2017-4-27 15:59 | 显示全部楼层
N76E003的OCD片上调试系统怎么关的问题解决了么,怎么解决的啊,ICP工具好像也不行,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

15

帖子

0

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