最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

51與STM32學(xué)習(xí)先后解析

2023-08-26 08:25 作者:liht1634  | 我要投稿

51單片機(jī)的開(kāi)發(fā)模式基于寄存器開(kāi)發(fā),這里的寄存器我們可以把它想象成中間人。需要通過(guò)配置寄存器(端口、定時(shí)器、串口、AD、IIC、SPI等)去控制片上的外設(shè),也就是通過(guò)一定的游戲規(guī)則(沒(méi)人教你,游戲你一樣會(huì)玩,還賊溜)告訴中間人你要做什么。配置寄存器的過(guò)程是了解單片機(jī)內(nèi)部硬件非常重要的基礎(chǔ)。買一個(gè)開(kāi)發(fā)板就可以搞定這部分的學(xué)習(xí),初步掌握這些寄存器的使用方法。比如配置STC15W408AS的端口為輸入或輸出,配置定時(shí)器0的定時(shí)時(shí)間,示例代碼如下。

/*******************************************************/ void Init_STC15W408AS(void) //初始化端口 { ? ?P1M0 = 0xFF; P1M1 = 0x00; P3M0 = 0x05; P3M1 = 0xFA; P5M0 = 0x00; P5M1 = 0x30; } void Init_Timer0(void) //初始化定時(shí)器0=1ms@11.0592MHz { AUXR |= 0x80; //定時(shí)器時(shí)鐘1T模式 TMOD &= 0xF0; //設(shè)置定時(shí)器模式 TL0 = 0xCD; //定時(shí)器賦初值 TH0 = 0xD4; ? ?ET0 = 1; ? ?//使能定時(shí)器0 TR0 = 1; //定時(shí)器0開(kāi)始計(jì)時(shí) EA = 1; //打開(kāi)總中斷 } /*******************************************************/

所謂的“電子工程師”教唆初學(xué)者:51已經(jīng)過(guò)時(shí),直接學(xué)STM32單片機(jī)就可以了,可能還會(huì)涉及到編程思想很難轉(zhuǎn)換等言論。當(dāng)他說(shuō)出51已經(jīng)過(guò)時(shí),就知道這個(gè)人是個(gè)外行。

通過(guò)系統(tǒng)的學(xué)習(xí)和使用之后,再去學(xué)習(xí)別的單片機(jī),你會(huì)發(fā)現(xiàn)大多數(shù)的單片機(jī)的開(kāi)發(fā)使用模式都差不多,底層都是通過(guò)寄存器控制外設(shè)。51單片機(jī)直接配置寄存器,而STM32由于需要配置的寄存器較多,官方推出現(xiàn)成的庫(kù)(中間人太多,需要1個(gè)代表)讓用戶直接調(diào)用,一次性去配置所用外設(shè)的相關(guān)寄存器,這樣可以有效減少工作量以及出錯(cuò)的機(jī)率,意義重大。下面是配置STM32端口的示例代碼,使用參考:STM32單片機(jī)介紹1。

void KEY_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE, ENABLE); //PE13 PE14 開(kāi)漏輸入 檢測(cè)手動(dòng)合分閘 ?PE11預(yù)分預(yù)合 ?PE12遠(yuǎn)方就地按鍵 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14|GPIO_Pin_12; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; // GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_12|GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOE, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOD, &GPIO_InitStructure); }

51單片機(jī)最基礎(chǔ)、最簡(jiǎn)單、最好學(xué),本著從易到難的原則先從它開(kāi)刀,去系統(tǒng)地認(rèn)識(shí)單片機(jī)并初步掌握使用單片機(jī)的一般方法,這個(gè)很關(guān)鍵,另外對(duì)于培養(yǎng)個(gè)人的自信心也有裨益。有了51單片機(jī)扎實(shí)的基礎(chǔ),其他單片機(jī)的學(xué)習(xí)即可水到渠成。

---------------------------------------------------------------------------------------------

以上是本人對(duì)51與STM32哪個(gè)先學(xué)的一些個(gè)人建議,下面講述編程習(xí)慣,日后如有添加并入此處。

1)變量名不要用a、b、c等無(wú)意義字符,代碼多了,你就能體會(huì)到有多痛苦,力求見(jiàn)名知意。

//變量定義 unsigned int KeyCount=0; //按鍵計(jì)數(shù) volatile unsigned char DistanceValue=0; //0-DistanceBaseData之間取值 unsigned int AdjustDistanceMaxTime=0; //調(diào)距等待的最長(zhǎng)時(shí)間計(jì)數(shù) unsigned char SendIRTime=0; //發(fā)射時(shí)間 unsigned char SendIRStep=0; //發(fā)射步驟 unsigned int OutCount=0; //輸出計(jì)數(shù)

2)if……else……嚴(yán)格對(duì)齊好,增加代碼的可讀性。

3)認(rèn)真且準(zhǔn)確的書(shū)寫(xiě)注釋,增進(jìn)代碼的可讀性與可維護(hù)性。

4)盡量少用goto語(yǔ)句,當(dāng)代碼比較復(fù)雜時(shí)很容易造成流程的混亂。

---------------------------------------------------------------------------------------------

不積跬步,無(wú)以至千里;不積小流,無(wú)以成江海。覺(jué)得不錯(cuò),動(dòng)動(dòng)發(fā)財(cái)?shù)男∈贮c(diǎn)個(gè)贊哦!


51與STM32學(xué)習(xí)先后解析的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
玉屏| 黔西县| 西宁市| 扶风县| 松溪县| 榆社县| 武邑县| 罗江县| 太和县| 涟源市| 同德县| 闻喜县| 闸北区| 华容县| 贵阳市| 天水市| 永年县| 依安县| 建阳市| 保定市| 无极县| 梅河口市| 安溪县| 天门市| 枝江市| 广宁县| 石首市| 嵊州市| 巴彦县| 雷山县| 双峰县| 云林县| 麻栗坡县| 隆昌县| 武汉市| 宁安市| 喀喇| 射洪县| 绩溪县| 额敏县| 沾化县|