ch579寫(xiě)TMR
第一次使用變量存地址
輸出,沒(méi)寫(xiě)進(jìn)去
第二次直接寫(xiě)個(gè)一樣的常量地址
輸出就是正常的
有人知道為什么嗎?竟有這種事,第一次遇到。
ch579寫(xiě)TMR
第一次使用變量存地址
輸出,沒(méi)寫(xiě)進(jìn)去
第二次直接寫(xiě)個(gè)一樣的常量地址
輸出就是正常的
有人知道為什么嗎?竟有這種事,第一次遇到。
這個(gè)是基礎(chǔ)C問(wèn)題,你1的temp并沒(méi)有指向0x4000200c,你是賦值temp的值是0x4000200c,你應(yīng)該uint32* temp = (uint32*)0x4000200c,另外,地址等值最好用宏定義,這是個(gè)好習(xí)慣。
你估計(jì)沒(méi)仔細(xì)看,我不需要temp 地址指向0x4000200C,*( type * )value 代表將這個(gè)變量強(qiáng)轉(zhuǎn)為地址,再指向這個(gè)地址。不是你想的取出temp的地址,再轉(zhuǎn)類(lèi)型指針,倆步的打印都是一樣的,按照你說(shuō)的,第二步打印*( uint32_t * )temp 根本打印不出來(lái)正確的數(shù)。不信你試試。
官方例程的DMA地址賦值,就是我這個(gè)的反向操作,地址強(qiáng)轉(zhuǎn)變量,還割掉了前16位。不用宏定義的就是要玩騷操作,可惜玩出了BUG