This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

在应用TM4C1230时,将PC0、PC1用作GPIO,出现程序运行错误

Other Parts Discussed in Thread: TM4C1230C3PM, LMFLASHPROGRAMMER, TM4C1230D5PM

你好:

 目前在研制一款新型3D打印机时,用TM4C123X MUC作为主控芯片,在应用过程遇到一些问题:

  1. 将芯片的51(PC1)、52(PC0)引脚用做普通IO口(PC0、PC1为JTAG的TCK、TMS的复用口),由于芯片资源不够,所以将JTAG引脚用做GPIO,PC0、PC1设置为输入,采用查询方式;
  2. 在调试过程中,当PC0和PC1反复改变状态后,出现程序运行错误的情况,表现为其他IO口输出状态不正确,其他输入IO检测不到状态改变,但是PC0和PC1可以检测到端口状态改变,在此情况下芯片的USB通信可用,上位机可以收到USB的信息;
  3. IO输入采用查询方式,用定时器实现循环定时查询,USB采用中断接收,接收到有效数据后发送的方式,发送在主循环中进行,可以判断程序主循环在运行;
  4. 程序中已将GPIOLOCK寄存器设置为0X4C4F434B,GPIOCR寄存器已设置,GPIO的配置程序是TI的官方例程;
  5. 在程序中设置系统变量可以看到程序运行到了不应被调用的函数里,如何进入的不清楚,系统USB通信正常,中断正常,采用3.3V供电;
  6. 在PC0和PC1输入某个特殊时序后,程序可以恢复正常,其他IO口的状态也正常,但是可以判断不是程序复位重启,因为USB一直可以通信,且通信连续没有重连过;
  7. 如果将PC0、PC1其中一个用替他IO代替,就不会出现上述现象;

  请帮忙分析造成上述现象的原因和解决办法,非常感谢!!