虽然经常来论坛看看,但很少发帖子,看到论坛在搞LM3S811,去年电子设计时TI 发了块811的板子,但是同学玩的时候有很多锁死的,具体见文档。 也可能论坛活动的板子和我的有区别,没有锁死的问题。还是看看吧,应该有好处的。 有人说为什么会锁死,我说下我的理解: 1)、GPIO口和JTAG的口是复用的,假如你系统一启动首先执行的就是把复用的管脚IO配置为输出,如下程序: int main() { SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE,GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2); } 问题来了,JTAG还没有连接上,这个IO就成输出管脚了,以后系统每次启动你都连接不上JTAG,那不是下载程序就成了浮云。 2)、说下是怎么防锁死的,还是看代码吧。 void jtagWait() { SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); GPIOPinTypeGPIOInput(GPIO_PORTB_BASE,GPIO_PIN_1 | GPIO_PIN_5); //GPB1/5为输入,因为GPB1/5上连接的是按键 GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE,GPIO_PIN_3); if(GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_1) == 0) //在系统启动时,一旦按键按下,程序就死在while(1)里, //JTAG就有时间去连接上了,不就可以下载程序了嘛,哈哈 { while(1) { GPIOPinWrite(GPIO_PORTB_BASE,GPIO_PIN_3,0); } } SysCtlPeripheralDisable(SYSCTL_PERIPH_GPIOB); } 程序已经很明白了吧
以上仅是个人理解,有错误请指出。 还有看到有同学在要原理图,我也发来吧,是电子设计是发的那块的。(原理图和PCB)
[ 本帖最后由 rabbitlcat 于 2011-4-22 22:39 编辑 ]
|