新聞中心

STM32微處理器簡介

作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏

外觀上的差異是最容易理解的,STM32F107VCT6采用的是LQFP-100Pin 封裝,AT89C51采用DIP-40Pin封裝(Pin是指引腳數(shù),DIP也就是電子元件

里面的直插元件,貼片元件也有很多種,其中LQFP封裝就是一個(gè)例子)


LQFP-100Pin,封裝引腳圖

STM32F107VCT6 實(shí)物圖片


AT89C51和三種同類型DIP封裝單片機(jī)[C52內(nèi)部ROM為8K,S51可以ISP直接調(diào)試代碼]

從代碼儲(chǔ)存來比較,STM32F107VCT6有512K字節(jié)的內(nèi)部ROM,而AT89C51卻只有4K,89C52只有8K,但是可以通過外部PROM/EEPROM來讀取

代碼,AT89C51可以尋址0x0000-0xFFFF,也就是16K拓展ROM.STM32F107VCT6也可以實(shí)現(xiàn)外部拓展代碼儲(chǔ)存,用NAND FLASH

從隨機(jī)儲(chǔ)存器比較,STM32F107VCT6有64K RAM,AT89C51有512B RAM

從指令集來比較,89Cxx類使用MCU-51指令集,STM32使用ARM指令集,ARM7系列和ARM9系列也各使用不同的指令集

控制STM32的通用IO端口的代碼和AT89C51大有不同,對于STM32的各個(gè)端口還需要先配置,后使用,AT89C51就只需要一句

sbit CtrlPort=Px^x;或者Px=0x??;[Px^x代表Px端口的第x位IO引腳,0x??代表一個(gè)兩位的十六進(jìn)制的數(shù)]

就可以使用這個(gè)IO引腳,對一個(gè)IO引腳輸出高電平和輸出低電平只需簡單的

CtrlPort=1輸出高電平 CtrlPort=0輸出低電平

STM32對于一個(gè)將要輸出高電平再低電平的端口需要先對它進(jìn)行初始化,以STM32的PA3引腳為例

void PA3_config(void)

{

GPIO_InitTypeDef GPIO_InitStructure; //這個(gè)是控制GPIO引腳的結(jié)構(gòu)

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO , ENABLE); //對PA的端口進(jìn)行AFIO的時(shí)鐘處理

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; //第3個(gè)引腳

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //輸出50MHz

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; //開漏輸出

GPIO_Init(GPIOA, &GPIO_InitStructure); //對PA端口的Pin3引腳進(jìn)行初始化

}

這個(gè)就是初始化,后面讓IO端口進(jìn)行高低電平輸出

void PA3_Turn_Low(void)

{

GPIO_ResetBits(GPIOA, GPIO_Pin_3); //設(shè)置PA3為低電平

}

void PA3_Turn_Hige(void)

{

GPIO_SetBits(GPIOA, GPIO_Pin_3); //設(shè)置PA3為高電平

}

用一個(gè)STM32的引腳挺麻煩的,不過處理器主頻也彌補(bǔ)函數(shù)過多帶來的增多額外時(shí)鐘處理的一些缺陷


上一頁 1 2 下一頁

關(guān)鍵詞: STM32微處理

評論


技術(shù)專區(qū)

關(guān)閉