久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6589|回復(fù): 0
收起左側(cè)

STM8S207學(xué)習(xí)筆記與心得體會(huì)分享

[復(fù)制鏈接]
ID:710613 發(fā)表于 2020-3-28 09:53 | 顯示全部樓層 |閱讀模式
本人從新學(xué)者的角度積累了一些STM8S207這個(gè)8位微控制器的心得體會(huì)

STM8S學(xué)習(xí)筆記

SWIM 引腳除了作為調(diào)試接口,還可以作為普通的 I/O 口使用,用戶使用過(guò)程中,如果既想 將這個(gè)管腳作為調(diào)試腳,又想作為普通 I/O 腳,安全的做法是做 PCB 時(shí)加一個(gè)跳線,通過(guò)跳線的連接來(lái)切換功能。建議在 SWIM 管腳加一個(gè) 4.7K 的上拉電阻,以保證調(diào)試時(shí)數(shù)據(jù)的可靠性

STM8S 除了通過(guò) SWIM 接口來(lái)下載程序,有些型號(hào)還支持通過(guò)UART 接口來(lái)下載

我們選擇了 PB3、PD3、PD7 作為三個(gè)用戶按鍵的接口。電路中的三個(gè)電阻和電容為硬件防抖,這樣 程序設(shè)計(jì)中就不用進(jìn)行軟件防抖處理

USB轉(zhuǎn)TTL電路的 USB 接口

浮動(dòng)輸入:是 GPIO 的管腳的電平狀態(tài)是不確定的,容易受到外部電平的干擾

上拉輸入:管腳的電平則只有高電平或低電平兩種確定的狀態(tài)。一般 I/O 做外部中斷輸入時(shí)要設(shè)置為上拉輸入,做 A/D 轉(zhuǎn)換時(shí)要設(shè)置為浮動(dòng)輸入

推挽輸出:推挽輸出方式能夠獨(dú)立的輸出高電平和低電平,適合驅(qū)動(dòng)數(shù)字器件;

開(kāi)漏輸出:開(kāi)漏輸出可以穩(wěn)定的輸出低電平,能承受大的灌電流,但是開(kāi)漏輸出無(wú)法輸出高電平,需要外接上拉電阻才可以輸出高電平,輸出的高電平則有外接的上拉電平?jīng)Q定,這種輸出方式適合做電流型驅(qū)動(dòng)。

做按鍵輸入時(shí)為了能夠準(zhǔn)確的得到鍵值,我們應(yīng)當(dāng)將相應(yīng) GPIO 口設(shè)置為帶上拉輸入或者在 GPIO 外部增加一個(gè)外部上拉電阻

GPIO口操作

1)使用寄存器來(lái)操作

端口 X 輸出數(shù)據(jù)寄存器 Px_ODR—存放端口要輸出的數(shù)據(jù)

端口 X 輸入寄存器 Px_IDR—存放引腳的狀態(tài)值,此寄存器只讀

端口 X 數(shù)據(jù)方向寄存器 Px_DDR—設(shè)置端口的輸入/輸出, 某位被設(shè)置為1時(shí),對(duì)應(yīng)管腳為輸出模式;當(dāng)某位被設(shè)置為0 時(shí),對(duì)應(yīng)的管腳為輸入模式

端口 X 控制寄存器 1 Px_CR1—設(shè)置端口輸入模式、輸出模式

在端口為輸入模式下,設(shè)置端口的上拉模式:0—浮空輸入;1—帶內(nèi)部弱上拉輸入;

在端口為輸出模式下,設(shè)置端口為開(kāi)漏輸出或推挽輸出: 0—模擬開(kāi)漏輸出;1—推挽輸出;

端口 X 控制寄存器 2 Px_CR2—設(shè)置端口中斷開(kāi)關(guān)及輸出擺率

在端口為輸入模式下,設(shè)置端口的中斷: 0—禁止外部中斷;1—使能外部中斷;

在端口為輸出模式下,設(shè)置端口的輸出擺率: 0— 低速擺率,輸出速度最大2M;1—快速擺率,輸出速度最大10M

PC_DDR|=0x08;這句代碼用來(lái)將PC_DDR寄存器的[3]位置位,而不影響寄存器的其他位,這句代碼實(shí)質(zhì)上是將 PC_DDR寄存器的值與0x08進(jìn)行或操作,然后再賦值給 PC_DDR寄存器

PC_ODR&=0xF7;//PC_ODR 第4位清零,輸出低電平,在程序中出現(xiàn)的&=也是嵌入式 C 語(yǔ)言中比較常用的位操作方式,它用來(lái)將某位清零,而不影響寄存器的其他位。這句代碼實(shí)質(zhì)上是將 PC_DDR寄存器的值與0x08進(jìn)行與操作,然后再賦值給 PC_DDR 寄存器。

PC_ODR^=0x08;這一句代碼即可實(shí)現(xiàn)前述的2 句代碼的功能,它是對(duì)寄存器某位的值進(jìn)行取反操作

  • 使用庫(kù)函數(shù)操作

PC_ODR_ODR3^=1,對(duì)PC3取反

與 GPIO 輸出有關(guān)的函數(shù)有(GPIO 的庫(kù)函數(shù)文件 stm8s_gpio.c)

GPIO_Init:GPIO 端口初始化;

GPIO_Write:設(shè)置整個(gè)端口輸出值;

GPIO_WriteHigh:設(shè)置某個(gè)管腳輸出高電平;

GPIO_WriteLow:設(shè)置某個(gè)管腳輸出低電平;

GPIO_WriteReverse:翻轉(zhuǎn)某個(gè)管腳這些功能;

時(shí)鐘系統(tǒng)

外部時(shí)鐘信號(hào)直接接STM8 單片機(jī)的OSCIN 管腳,OSCOUT 則可以節(jié)省下來(lái)做GPIO使用

當(dāng) STM8S 單片機(jī)復(fù)位之后,默認(rèn)將 HSI 的 8 分頻作為系統(tǒng)主時(shí)鐘,2MHz 的 HSI 時(shí)鐘信號(hào)可以保證系統(tǒng)在即使 VDD 較差的情況下也能正常啟動(dòng),HSI為16Mhz的一個(gè)RC震蕩時(shí)鐘。

LSI可以作為在停機(jī)模式下維持獨(dú)立看門狗和自動(dòng)喚醒單元的低功耗時(shí)鐘源。

使用庫(kù)函數(shù)來(lái)切換時(shí)鐘

CLK_ClockSwitchCmd:?jiǎn)?dòng)或關(guān)閉時(shí)鐘切換

CLK_ClockSwitchConfig:系統(tǒng)時(shí)鐘切換配置

CLK_GetSYSCLKSource:獲取系統(tǒng)時(shí)鐘源

CLK_GetFlagStatus:獲取時(shí)鐘狀態(tài)

CLK_SYSCLKConfig:系統(tǒng)時(shí)鐘分頻

中斷控制器ITC

中斷根據(jù)中斷事件請(qǐng)求的來(lái)源可分為軟件中斷和硬件中斷,硬件中斷又分為內(nèi)部中斷和外部中斷。

所有 I/O 口都具有外部中斷能力,每個(gè)端口都具有獨(dú)立的中斷向量和獨(dú)立的中斷標(biāo)志

2 個(gè)不可屏蔽(只要有中斷請(qǐng)求,處理器必須要處理)的中斷:RESET、TRAP;

1 個(gè)不可屏蔽的最高優(yōu)先級(jí)的硬件中斷 TLI(PD7);


STM8S 的外部中斷向量一共有 5 個(gè):

PA 口:PA[6:2] 共 5 個(gè)管腳

PB 口:PB[7:0] 共 8 個(gè)管腳

PC 口:PC[7:0] 共 8 個(gè)管腳

PD 口:PD[6:0] 共 7 個(gè)管腳

PE 口:PE[7:0] 共 8 個(gè)管腳

中斷向量表中的中斷又稱為硬件中斷,中斷向量號(hào)越小,中斷的優(yōu)先級(jí)越高,

軟件中斷優(yōu)先級(jí)級(jí)別越高,優(yōu)先級(jí)越高

InitEXTI();函數(shù)為對(duì)按鍵對(duì)應(yīng)的 I/O 口進(jìn)行初始化

EXTI_DeInit:初始化相關(guān)寄存器至默認(rèn)值

EXTI_SetExtIntSensitivity:設(shè)置指定端口的外部中斷觸發(fā)方式

enableInterrupts:開(kāi)啟中斷

disableInterrupts:關(guān)閉中斷


中斷服務(wù)函數(shù)位于文件 stm8s_it.c中,此文件定義了所有中斷的服務(wù)程序。

定時(shí)器

高級(jí)控制型:TIM1,16 位;

通用型:TIM2/TIM3/TIM5,16 位;

基本型:TIM4/TIM6,8 位;

Timer4_Init(0xff);為我們?cè)趲?kù)函數(shù)基礎(chǔ)上開(kāi)發(fā)的 API 函數(shù),0xff 為輸入?yún)?shù),函數(shù)作用是初始化 TIM4。

TIM4_DeInit();函數(shù)的功能為將 TIM4 相關(guān)寄存器全部恢復(fù)至默認(rèn)值。

TIM4_TimeBaseInit 為初始化 TIM4 時(shí)基單元函數(shù),第一個(gè)參數(shù)為設(shè)置 TIM4 的時(shí)鐘分頻值,;第二個(gè)參數(shù)為設(shè)置 TIM4_ARR 寄存器的值。

TIM4_ITConfig 為 TIM4 中 斷 配 置 函 數(shù) , 它 設(shè) 置 TIM4 向 上 溢 出 中 斷 , 并 使 能 中 斷 。

TIM4_Cmd(ENABLE);為使能 TIM4 并開(kāi)始計(jì)數(shù)。

TIM4 溢出中斷的響應(yīng)函數(shù)在程序文件 stm8s_it.c 中

函數(shù) TIM1_DeInit()將 TIM1 的相關(guān)寄存器恢復(fù)至默認(rèn)值。

函數(shù) TIM1_TimeBaseInit()用于初始化 TIM1 時(shí)基參數(shù),可以設(shè)置 TIM1 的預(yù)分頻值、計(jì)數(shù)方式、自動(dòng) 重裝載值及重復(fù)計(jì)數(shù)器值。

TIM1_OC3Init()用于初始化輸出比較通道 3 的參數(shù),可以設(shè)置 TIM1 通道 3 匹配時(shí)輸出電平和 PWM

模式、是否啟用比較輸出及互補(bǔ)比較輸出、脈沖寬度、輸出比較及互補(bǔ)輸出比較的極性、輸出比較空閑

狀態(tài)及互補(bǔ)輸出比較空閑狀態(tài)的電平值。參數(shù)脈沖寬度在 PWM 模式中使用,在其他模式中不能設(shè)置位高

于 TIM1_ARR 寄存器的值。

TIM1_Cmd(ENABLE)語(yǔ)句則使能 TIM1 計(jì)數(shù)器開(kāi)始計(jì)數(shù)。

TIM1_OC3PreloadConfig(ENABLE)使能輸出比較 3 預(yù)裝載功能。

TIM1_CtrlPWMOutputs(ENABLE)使能 TIM1 的主輸出功能

模數(shù)轉(zhuǎn)換器

分辨率為10位

轉(zhuǎn)換可被外部觸發(fā):ADC專用外部中斷ADC_ETR、定時(shí)器觸發(fā)信號(hào) TRGO

IIC總線接口

所有的通信器件通過(guò)串行數(shù)據(jù)線 SDA 和串行時(shí)鐘線 SCL,但某一時(shí)刻總線上只能有一個(gè)主機(jī)

實(shí)際應(yīng)用中 IIC 總線的 2 根通信線須接有 5~10K 的上拉電阻(10K)


EEPROM(Electrically Erasable Programmable Read-Only Memory),電擦除可編程只讀存儲(chǔ)器,

和電寫(xiě)入、掉電后數(shù)據(jù)不丟失的存儲(chǔ)器,它在應(yīng)用中一般存儲(chǔ)用戶數(shù)據(jù),在系統(tǒng)運(yùn)行過(guò)程中可以隨時(shí)修改,系統(tǒng)復(fù)位之后從里面讀取的是修改之后的新數(shù)據(jù)



完整的Word格式文檔51黑下載地址:

STM8S學(xué)習(xí)筆記.docx (604.05 KB, 下載次數(shù): 19)




評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩乱码av | 99精品欧美 | 337p日本欧洲亚洲大胆鲁鲁 | 久久国色| 久久久69| 日本成人中文字幕在线观看 | 99精品在线免费观看 | 伊人网站 | 欧美日韩一区二区三区在线观看 | 天堂一区二区三区四区 | 成人三区 | 国产女人与拘做视频免费 | 99免费视频| 人人人人爽 | 日韩精品视频一区二区三区 | 欧美韩一区二区三区 | 91精品久久久久久久久久入口 | 国产精品成人一区 | 黄色一级大片在线观看 | 国产精品久久久久久久久久久新郎 | 国产一区二区三区免费观看在线 | 亚洲精久 | 国产免费a | a久久| 丝袜美腿一区二区三区动态图 | 久久日韩精品一区二区三区 | 99国产精品久久久久老师 | 国产在线一区二 | 麻豆精品国产91久久久久久 | 国产激情一区二区三区 | 亚洲欧美一区二区三区国产精品 | 91免费在线 | 国产欧美日韩精品一区 | 亚洲婷婷六月天 | 精品国产欧美一区二区 | 狠狠干天天干 | 国产一级片一区二区三区 | 国产成都精品91一区二区三 | 不卡视频在线 | 亚洲一区二区av | 亚洲视频一|