一開始建立了工程,然后程序下載都很正常。不知道什么情況自己下載代碼之后,再重新下載代碼無法成功。
我按照提示找了一下FlashStm32f30x8.flash這個文件,卻發(fā)現(xiàn)IAR的目錄下沒并沒有。又懷疑是IAR文件丟失。
重新安裝IAR,卻發(fā)現(xiàn)問題仍然繼續(xù). ~~~~感覺像是芯片壞了~~~
于是通過STVP工具,讀取一下。 奇跡發(fā)生了,竟然可以讀取程序。 嗯~~那可以排除芯片的問題。
好吧,那我重新用IAR下載應(yīng)該可以吧。 于是重新下載程序, 暈~~~居然還是彈出那個錯誤。
難道自己的程序竟然會引起這樣的錯誤???
!?。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。?!
于是通過STVP將FLASH全部清空,再用IAR下載調(diào)試。嗯~~~成功了....
既然成功了,那就用F5全速跑一下吧。 暈,程序跑飛了。。。。。。。。。。
此時,我再用IAR下載時候,發(fā)現(xiàn)又彈出剛開始的錯誤了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
再通過STVP將FLASH全部清空,再用IAR下載調(diào)試,一步一步調(diào)試。發(fā)現(xiàn)程序跑到ST官方的庫文件里面就出不來了。
繼續(xù)跟蹤,原來庫在GPIO_OType參數(shù)的時候,沒有判斷值,直接就賦值給變量了.
我的代碼中確實沒有對GPIO_OType變量進行賦值,因為感覺該口作用串口的輸入輸出應(yīng)該不需要賦值.
后面對該值賦值后,問題再也沒有重現(xiàn)了.
代碼如下:
GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_7);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_7);
//TXPIN
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
GPIO_Init(GPIOA,&GPIO_InitStructure);
//RXPIN
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStructure.GPIO_OType=GPIO_OType_OD;
GPIO_Init(GPIOA,&GPIO_InitStructure);
看來庫,還是得小心使用,否則出問題的時候.查死你啦~~~