国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

歷史上的今天

今天是:2025年02月06日(星期四)

正在發(fā)生

2021年02月06日 | STM8庫(kù)函數(shù)開發(fā)手冊(cè)(1) //工程模板、GPIO、時(shí)鐘

發(fā)布者:睿智之光 來(lái)源: eefocus關(guān)鍵字:STM8  庫(kù)函數(shù)  工程模板  GPIO  時(shí)鐘 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

第一部分 創(chuàng)建庫(kù)函數(shù)工程

1、創(chuàng)建文件目錄

BSP文件夾中存放自定義底層驅(qū)動(dòng)程序文件;

IAR文件夾存放IAR工程文件;

LIB 文件夾中引入C 語(yǔ)言自己的庫(kù)函數(shù);

USR 文件夾中存放自定義主程序及數(shù)據(jù)庫(kù)頭文件等;

Readme 文件夾中存放自定義程序設(shè)計(jì)說(shuō)明文件;

2、將STM8庫(kù)函數(shù)文件拷貝入LIB文件夾

鏈接:

https://pan.baidu.com/s/1llVx9meEhhk0VYKbsKzLxwpan.baidu.com

提取碼:iy3v

下載解壓后進(jìn)入官方庫(kù)函數(shù)目錄:

打開LibrariesSTM8S_StdPeriph_Driver文件夾,找到inc 和src文件夾

就是我們的官方庫(kù)文件啦

將其拷貝到我們的LIB下:

inc文件夾是.h文件集合

src文件夾是.c文件集合

3、將STM8中斷入口文件拷貝入U(xiǎn)SR文件夾

STM8S_StdPeriph_LibProjectSTM8S_StdPeriph_Template文件夾下拷貝如下文件

將stm8s_it.c、stm8s_it.h拷貝到USR文件夾下

4、將stm8s_conf.h(目錄文件)拷貝到LIB文件夾下

STM8S_StdPeriph_LibProjectSTM8S_StdPeriph_Template文件夾下拷貝如下文件

將stm8s_conf.h(目錄文件)拷貝到LIB文件夾下

關(guān)于stm8s_conf.h的介紹:

stm8s_conf.h是官方固件庫(kù)頭文件的集合,如果不需要某個(gè)方面的功能,可以將對(duì)應(yīng)頭文件的聲明注釋掉。

5、打開IAR新建工程

記得把工程放入IAR文件夾下

6、將工程文件結(jié)構(gòu)與IAR工程結(jié)構(gòu)對(duì)應(yīng)起來(lái)

IAR文件夾是存工程的,不需要添加

7、往工程樹中添加文件

①、往USR中添加stm8s_it.c(不需要添加.h)

②、LIB中添加stm8s_conf.h

8、保存工程到IAR文件夾下

9、在IAR工程中創(chuàng)建main.c

添加入工程中USR樹下

10、創(chuàng)建pbdata.h pbdata.c文件并添加入U(xiǎn)SR文件夾下

(這兩個(gè)文件用來(lái)存儲(chǔ)公共函數(shù))

解決公共調(diào)用函數(shù)重復(fù)調(diào)用問(wèn)題,可以這樣定義頭文件

11、配置工程設(shè)置

①、選定MCUi型號(hào)

②、選定調(diào)試方式

③、選定編譯輸出格式

④、?設(shè)置工程調(diào)用目錄?

$PROJ_DIR$..libinc
$PROJ_DIR$..libsrc
$PROJ_DIR$..lib

$PROJ_DIR$..usr 

$PROJ_DIR$..bsp

$PROJ_DIR$..iar

12、在main.c中寫main函數(shù)

13、在pbdata.h中包含 stm8.h

14、在 stm8.h中選中我們用的芯片

15、嘗試編譯,至此一個(gè)庫(kù)函數(shù)工程已經(jīng)搭建完成

最終目錄如下:

16、為了完善工程,我們需要一個(gè)斷言函數(shù)來(lái)為程序提供參數(shù)檢查


#include "pbdata.h"int main(void){

    //main}/*斷言函數(shù):它的作用是在編程的過(guò)程中為程序提供參數(shù)檢查*/#ifdef USE_FULL_ASSERTvoid assert_failed(u8* file,u32 line){

  while(1)

  {

  }}#endif


17、其實(shí)我們還沒(méi)有引用官方功能庫(kù)文件,可以用什么引用什么,引用方法如下:

在LIB里添加對(duì)應(yīng)的庫(kù)文件的.c文件就可以了


18、我們自己寫的代碼放在哪?

例如我們要寫一個(gè)led驅(qū)動(dòng),創(chuàng)建led.h 和led.c文件,然后放入BSP文件夾下,同時(shí)將led。c引入工程樹下BSP下。

在led.h中要也要這樣定義頭文件


#ifndef _LED_H#define _LED_H#include "stm8s.h"#endif


在led.c中引用pbdata.h,而在pbdata.h中引用led.h

CSDN-專業(yè)IT技術(shù)社區(qū)-登錄blog.csdn.net


第二部分 GPIO庫(kù) (gpio.c)

1、GPIO_Init(GPIOx,GPIO_Pin,GPIO_Mode) // GPIO初始化

其中GPIO_Pin

其中GPIO_Mode

GPIO_Init(GPIOA, GPIO_PIN_LNIB, GPIO_MODE_IN_FL_NO_IT);

2、GPIO_DeInit(GPIOx) //GPIO回復(fù)初始狀態(tài)

注意:復(fù)位狀態(tài)下,所有的引腳都是懸浮輸入模式

GPIO_DeInit(GPIOA);

3、GPIO_Write(GPIOx,PortVal) //GPIO按組寫值

GPIO_Write(GPIOA, 0x00);

4、GPIO_WriteHigh(GPIOx,PortPins) //GPIO按引腳號(hào)寫1

GPIO_WriteHigh(GPIOA, GPIO_PIN_0);

5、GPIO_WriteLow(GPIOx,PortPins) //GPIO按引腳號(hào)寫0

6、GPIO_WriteReverse(GPIOx,PortPins)

7、GPIO_ReadInputData(GPIOx) //讀取GPIO輸入寄存器

u8 port_value;port_value = GPIO_ReadInputData(GPIOA);

8、GPIO_ReadOutputData(GPIOx) //讀取GPIO輸出寄存器值

u8 port_value;port_value = GPIO_ReadOutputData(GPIOA);

9、GPIO_ReadInputPin(GPIOx,GPIO_Pin) //讀取GPIO輸入寄存器特定引腳位的值

10、GPIO_ExternalPullUpConfig(GPIOx,GPIO_Pin,NewState)

//設(shè)置某引腳使能上拉電阻

NewState:ENABLE或者DISABLE


第三部分 時(shí)鐘控制庫(kù) (clk.c)

1、CLK_DeInit() //恢復(fù)相關(guān)的時(shí)鐘寄存器到默認(rèn)值

CLK_DeInit();

2、CLK_HSECmd(NewState) //啟動(dòng)或者關(guān)閉外部高速振蕩器(HSE)

NewState:ENABLE或者DISABLE

3. CLK_HSICmd(NewState) //啟動(dòng)或者關(guān)閉內(nèi)部高速振蕩器(HSI)

4. CLK_LSICmd(NewState) //啟動(dòng)或者關(guān)閉內(nèi)部低速振蕩器(LSI)

5. CLK_CCOCmd(NewState) //啟動(dòng)或者關(guān)閉內(nèi)部時(shí)鐘輸出功能

6. CLK_ClockSwitchCmd(NewState) //啟動(dòng)或者關(guān)閉內(nèi)部時(shí)鐘切換

7. CLK_FastHaltWakeUpCmd(NewState) //啟動(dòng)或者關(guān)閉快速喚醒功能

8. CLK_SlowActiveHaltWakeUpCmd(NewState) //啟動(dòng)或者關(guān)閉活躍停機(jī)模式下的電壓調(diào)節(jié)器

9.CLK_ITConfig(CLK_IT,NewState) //啟動(dòng)或者關(guān)閉指定的時(shí)鐘中斷

其中CLK_IT的取值:

10. CLK_ClockSwitchConfig(CLK_SwitchMode,CLK_NewClock,ITState,CLK_CurrentClockState) //系統(tǒng)時(shí)鐘切換配置

其中:

CLK_SwitchMode:切換模式(MANUAL和AUTO兩種方式)

CLK_NewClock:DISABLE或者ENABLE

ITState:DISABLE或者ENABLE

CLK_CurrentClockState:DISABLE或者ENABLE

11、CLK_HSIPrescalerConfig(HSIPrescaler) //配置內(nèi)部高速振蕩器(HSI)的分頻器

其中:HSIPrescaler取值

12、CLK_CCOConfig(CLK_CCO) //配置時(shí)鐘輸出腳(CCO)的時(shí)鐘源

其中CLK_CCO:

13、CLK_PeripheralClockConfig(CLK_Peripheral,NewState)

//啟動(dòng)或者關(guān)閉指定的外設(shè)時(shí)鐘

其中CLK_Peripheral取值:

CLK_PERIPHERAL_I2C

CLK_PERIPHERAL_SPI

CLK_PERIPHERAL_UART1 ~3

CLK_PERIPHERAL_TIMER1 ~6

CLK_PERIPHERAL_AWU

CLK_PERIPHERAL_ADC

CLK_PERIPHERAL_CAN

14. CLK_SYSCLKConfig(CLK_Prescaler) //配置系統(tǒng)時(shí)鐘分頻器

其中CLK_Prescaler的值:

15、CLK_SWIMConfig(CLK_SWIMDivider) //配置SWIM時(shí)鐘分頻器

其中:

16、CLK_CANConfig(CLK_CANDivider) //配置CAN時(shí)鐘頻率

其中:

17、 CLK_ClockSecuritySystemEnable() //啟用時(shí)鐘安全系統(tǒng)

19. CLK_AdjustHSICalibrationValue(CLK_HSICalibrationValue)

//修復(fù)內(nèi)部高速振蕩器頻率

20.CLK_GetClockFreq() //獲取系統(tǒng)時(shí)鐘頻率

u32 u32_clk_freq;
u32_clk_freq = CLK_GetClockFreq();

21. CLK_GetSYSCLKSource() //獲取系統(tǒng)時(shí)鐘源

22. CLK_GetFlagStatus //獲取系統(tǒng)時(shí)鐘標(biāo)志狀態(tài)

23. CLK_GetITStatus(CLK_IT) //獲取系統(tǒng)時(shí)鐘中斷標(biāo)志狀態(tài)

其中:

24.CLK_ClearITPendingBit(CLK_IT) //清除系統(tǒng)時(shí)鐘中斷標(biāo)志狀態(tài)

CLK_ClearITPendingBit(CLK_IT_CSSD);


關(guān)鍵字:STM8  庫(kù)函數(shù)  工程模板  GPIO  時(shí)鐘 引用地址:STM8庫(kù)函數(shù)開發(fā)手冊(cè)(1) //工程模板、GPIO、時(shí)鐘

上一篇:IAR for STM8學(xué)習(xí)筆記(一)建立工程
下一篇:STM8電源模式管理及功耗控制

推薦閱讀

Nissan(日產(chǎn))是日本最早研發(fā)電動(dòng)車的廠商,早在 2010 年就已發(fā)布“Leaf”,加入純電動(dòng)車的行列。近日為了結(jié)合電動(dòng)車與儲(chǔ)能系統(tǒng),Nissan 在英國(guó)推出“all-in-one”服務(wù),整合太陽(yáng)能板、儲(chǔ)能電池與能源管理系統(tǒng),將太陽(yáng)能善加利用并可用于電動(dòng)車充電。隨著太陽(yáng)能板與屋頂太陽(yáng)能的設(shè)備量上升,儲(chǔ)能系統(tǒng)越來(lái)越受歡迎,可將日間儲(chǔ)存的電力在夜間善加利用,...
在2004年由威爾·史密斯主演的科幻大片《我,機(jī)器人》中,片中的機(jī)器人公司亮出了一句響亮的廣告詞——“2035年,這是個(gè)機(jī)器的時(shí)代。”而現(xiàn)實(shí)生活中,機(jī)器手雖然在自動(dòng)生產(chǎn)線等領(lǐng)域有越來(lái)越廣泛的應(yīng)用,但它依然是冷冰冰工具的形象,具有高度智慧的機(jī)器人離普通人的生活依舊遙遠(yuǎn)。不過(guò),隨著近兩年人工智能迎來(lái)了一段爆發(fā)性成長(zhǎng)之后,機(jī)器具備了更精準(zhǔn)地獲...
(文章來(lái)源:大眾網(wǎng)) ? ? ?? 面對(duì)疫情,位于日照開發(fā)區(qū)的創(chuàng)澤智能機(jī)器人集團(tuán)股份有限公司不僅籌集應(yīng)急防疫物資,捐贈(zèng)給防疫一線的工作人員。還充分發(fā)揮公司的科技優(yōu)勢(shì),研發(fā)人員利用假期在家里研發(fā)了殺菌消毒的機(jī)器人。 2月5日,創(chuàng)澤公司向日照開發(fā)區(qū)捐獻(xiàn)了首批共5臺(tái)殺菌消毒機(jī)器人,根據(jù)工作需要,日照開發(fā)區(qū)留下了一臺(tái),另外4臺(tái)共同捐贈(zèng)給...
51單片機(jī)超聲波測(cè)距程序代碼/超聲波模塊ME007顯示程序//晶振=8M//MCU=STC10F04XE//P0.0-P0.6共陽(yáng)數(shù)碼管引腳//Trig = P1^0//Echo = P3^2#include <reg52.h> //包括一個(gè)52標(biāo)準(zhǔn)內(nèi)核的頭文件#define uchar unsigned char //定義一下方便使用#define uint unsigned int#define ulong unsigned long//*****************************************...

史海拾趣

小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved