stm32 中地址的理解


轉:https://bbs.csdn.net/topics/391000139?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

STM32的中地址是按Bit,Byte,還是Word作為單位的?    例如0x8000000,它后面的單位是什么? Byte

為什么有的地址是按照uint16_t,有的是按照uint32_t,這個是為什么?為什么有的地址是按照uint16_t,有的是按照uint32_t,這個是為什么?

 

#define FLASH_BASE             ((uint32_t)0x08000000)  
那FLASH_BASE是個地址,為什么要對這個地址使用(uint32_t)轉換呢?

答:就是賦給它一個數據類型。這樣,*FLASH_BASE 就是一個雙字(4字節)。

那FLASH_BASE是個地址,為什么要對這個地址使用(uint32_t)轉換呢?

你看看這個宏定義是在什么地方使用的,看名字,應該是賦給某個地址變量的,那個變量的類型應該就是uint32_t的。

你當然也可以不在宏定義的地方給出類型,而在賦值的時候自己做類型轉換,甚至讓編譯器自己做自動類型轉換可能也是可以的,只是效率低一點,代碼可讀性差一點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM