我以前用的开发板,一直都没问题,今天换了官方的LaunchPad,库的版本也是去官方下的最新的,但是程序运行到GPIOPinTypeGPIOOutput这个函数时就会跳进中断,无法进行了,这是怎么回事,请知道的帮助下,谢谢
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.
我以前用的开发板,一直都没问题,今天换了官方的LaunchPad,库的版本也是去官方下的最新的,但是程序运行到GPIOPinTypeGPIOOutput这个函数时就会跳进中断,无法进行了,这是怎么回事,请知道的帮助下,谢谢
具体GPIOPinTypeGPIOOutput执行的是哪个脚?前面有对应初始化吗?
跳转到中断的什么位置了?
请尽可能详细的描述问题,有助于我们快速定位。谢谢。
你的代码进入硬件错误异常了。应该是程序配置时序上的错误,导致了异常。
把代码都贴上来看看吧。
楼主试一下把上面第一句话分开写:
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
后面在执行GPIOPinTypeGPIOOutput试一下。
在哪颗M4上,主频配置为多少?
太感谢你了,这样写就可以了。以前用的TM4C123GH6PZ这个,现在用的是TI官方的EK-TM4C123GX LaunchPad,芯片是TM4C123GH6PM。但还是想不通为什么会出现这种情况,是这个版本的库有问题,还是软件有问题。我的时钟是16M;希望找到原因。谢谢
一般来说,初始化一个外设后,需要几个时钟周期之后才可以对这个外设进行操作,这样会更稳定。所以好的习惯是:
初始化外设A;
初始化外设B;
配置外设A;
配置外设B;
我们经常是程序一开始把所有需要用的外设都逐个打开。然后再进行各自的初始化。
这样的写法就避免了初始化后马上操作。
1.SysCtlPeripheralEnable中输入的宏只能写一个,不可以把几个外设或起来一起输入。
2.使能一个外设(操作完寄存器)后,必须经过5个时钟周期,这个外设才能被真正使能。在这其间,尝试操作这个外设都将导致总线错误异常。因此必须在5个时钟周期延迟之后再对外设进行操作。
额,我懂你的意思了,只是想不明白为什么以前的程序这样写就可以,谢谢你啊,问题解决了。