隨便選了個(gè)32位寄存器,LCD的,使用數(shù)據(jù)變量指針指向,沒啥問題,打印都正常。
定義個(gè)測試用的結(jié)構(gòu)體(一開始用的聯(lián)合體,以為聯(lián)合體的問題,結(jié)果結(jié)構(gòu)體一樣的出錯(cuò)),很簡單,賦值卻出錯(cuò)。
還是同樣的程序,把地址換成RAM 的地址,哎,又好了。證明結(jié)構(gòu)體訪問沒啥問題。
以為結(jié)構(gòu)體不能這樣寫,結(jié)果使用結(jié)構(gòu)體指向,也是正常的。
然后結(jié)構(gòu)體指向同樣的數(shù)值的變量,不行,就奇了踏馬的怪了。
數(shù)據(jù)變量指針指向又行了。
也不能說不能用結(jié)構(gòu)體寫,我寫了好多個(gè)外設(shè)了,8位16位寄存器用的好好的,USB通訊正常的很。
寫TMR,來個(gè)32位寄存器,就出了這個(gè)問題。
頭都要搞暈了。
不會(huì)匯編,不然去扒keil生成的匯編了,看是不是編譯器優(yōu)化了什么。
官方有無大佬解釋一下?