熔絲風波

最近要學習AVR編程,可是發現只用Proteus仿真太沒意思了,於是弄了一個U口轉串口,來學習真正的AVR編程。但是這是個好迷茫的過程。雖然身邊有N多的牛人!!但是我覺得應該自己學。萬事總應有個先後順序,但是我卻有自己的學習方式,我決定先從串口通信學起,因爲只有串口調試弄明白了,才能監控程序的輸出,在沒有特殊顯示設備的情況下得到計算的數據。輸入輸出最簡單的方法當然就是用printf,scanf了。於是查了好多資料,終於弄到了一個printf的實例,但是!!!不好使,串口得到的都是亂碼。這可如何是好?我繼續上網查,有好多“串口調試亂碼”的相關網頁,都是說串口波特率,還有晶振沒有設置好。但是我堅信自己使用的是外部的12MHz的晶振,而且也設置正確了波特率,但是問題在哪呢?

終於忍不住了,問牛人,一語道破:熔絲沒設!!!我的AVR默認的是0001內部標定的1MHz晶振,冤啊!!!我回去後立刻就將熔絲位設了一下,可是畢竟是新手,設置成了1000,這是外部RC震盪8M至12M。可惜啊,鎖死了。無奈,怎麼辦?繼續google,所答非所問!!!還是請教牛人。牛人侯振環,太牛了。一下子說明問題,外部RC是外部有源時鐘,然後牛人用另一塊單片機輕鬆將其解鎖。使用已經起振的單片機的XTAL1引導AVR的XTAL1上,這就有了始終輸入,然後在這個時候,將熔絲位設置成正確的1111,哈哈!!!!成功了,終於可已使用串口了!!!

附上這個東拼西湊的源碼:

附上熔絲位截圖,引以爲鑑:(嘿嘿,圖片上傳功能暫時關閉,請訪問相冊 上傳圖片,敬請諒解。)無語了!!算了,忍了!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章