1樓:匿名使用者
在stm32中有個韌體庫,已經把那些埠的位址全部儲存在乙個向量表中,你用的那個define就是內部已經定義好的。你本來就是使用的韌體庫就可以對埠的位址進行正確的埠操作,然而在51中,這些埠是不能這樣操作的,只能把它都當做特殊的暫存器給他附位址。
2樓:匿名使用者
因為平台不同,c語言大的框架是相通的,但細節上有所區別
3樓:匿名使用者
51特殊功能寄存只能直接定址,不能間接定址
4樓:匿名使用者
在51微控制器中,如果你這麼定義:
#define p0 (*(volatile unsigned char*)0x80)
那麼執行p0=0x25的時候,彙編就變成
mov dptr,#0080h
mov a,#25h
movx @dptr,a
很明顯,你就不是往埠p0賦值0x25,而是像外部匯流排上的位址0x0080寫資料0x25了,了解?
51微控制器的暫存器存在於內部空間0x80-0xff,這空間屬於直接定址,不是訪問外部匯流排。所以只能用 sfr p0=0x80來定義。
stm32微控制器就不一樣,所有的外設暫存器都處於統一定址的外部空間中,所以只能用這種方法定義其位址,訪問時也類似movx指令的執行。
在51微控制器中,為什麼#define _scl_out 是什麼意思,為什麼用這種方式設定開漏模式
5樓:匿名使用者
所謂開來漏模式,是stc微控制器的自l/o腳可以設定成四種工作模bai式,開
du漏模式是其中一zhi
種。設定引腳模式是要設定兩個
dao暫存器的,至少需要兩行語句。
而這行巨集定義並沒有寫完整,後面還應該有_scl_out所帶替換的內容,而你沒寫出來,那是什麼就不得而知了。
但是,看_scl_out的意義,應該是定義乙個時鐘輸出引腳,並沒有開漏的意思。
6樓:匿名使用者
這只是乙個巨集定義,開漏模式的設定應該與暫存器有關
stm32復位問題,STM32微控制器的復位問題
stm32復位腳有內部上拉電阻,執行是沒什麼問題,只是沒辦法手動復位而且上電覆位不可靠,最好接個104左右的電容到復位腳,確保上電時可靠復位。 這個疏忽不應該,但也可以理解。軟體復位是指程式執行過程中,通過向控制暫存器寫入特定資料,實現復位。現在你沒有硬體復位電路,程式啟動都成問題,怎麼實行軟體復位...
stm32微控制器怎麼跟altium designer聯絡起來
你的意思是用altium來 通過iar或mdk之類的,甚至altium自身功能來跑 再在altium裡面看效果?我只能說,你想多了。他們之間唯一的聯絡就是altium把stm32當成一個器件來使用,畫出一個pcb板子。 廖骯繕亂 新建原理相簿。選擇選單欄上的 檔案 即可看到,具體操作如下圖所示 2做...
微控制器 sfr定義,微控制器sfr和sbit有什麼區別
老友記愛學習 我是一名微控制器工程師,很多人都有類似的問題發生,其實弄懂一個sfr,其它的也就懂了,我已經用通俗易懂的方法把它寫在了一個貼子上,感興趣的可以瀏覽一下。sfr到底是什麼 http tieba.baidu.com p 5004194830 p0 p3 psw acc等這些暫存器在sfr中...