娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

    本文講述移植STM32CubeMX生成的驅(qū)動程序到自己的項目中,以定時器為例。為什么要寫這篇文章呢?是因為定時器移植這件事情耗費了我整整2天的時間,只因為一個特殊的地方?jīng)]有注意到。把整個移植過程用文字記錄下來,以利于自身其它程序的移植,并對本文的讀者提供一些技術(shù)上的參考。

    1、如果僅完成計時功能,在STM32CubeMX中設(shè)置比較簡單,如下圖所示,只需指定其時鐘源即可。


    2、對時鐘進行進一步設(shè)置,這個在先前的日志中已經(jīng)描述過,將分頻系數(shù)與MCU的主頻系數(shù)設(shè)置成一致,例如我現(xiàn)在MCU的主頻是72M,則進行72分頻即可,這樣單位計數(shù)周期是1us,按照下圖所示,我在Counter Period中設(shè)置為1000,則定時器的中斷時間是1ms。


    3、設(shè)置定時器中斷

    4、生成工程文件。

    5、有了上述準備后,我們就可已將工程移植到自己的項目中了。

    6、建立定時器相應(yīng)的CPP和H文件,H文件的代碼如下:

/*

 * Timer3ê???2úéú1ms?¨ê±

 */

#ifndef TIMER3_H_

#define TIMER3_H_

 

void CommonTimer_InterruptFunction(void);

 

#ifdef __cplusplus

extern "C"{

 

class CTimer3

{

public:

void SetMode(uint8_t mode);

};

 

}

#endif

#endif

    7、復(fù)制定時器初始化函數(shù)中的程序到SetMode函數(shù)中。


    8、復(fù)制中斷函數(shù)中的內(nèi)容到CPP文件中。


    9、復(fù)制初始化文件中的內(nèi)容到CPP文件中。


    10、在CPP文件中定義自己的中斷服務(wù)處理函數(shù),以方便在main.cpp中調(diào)用,完整的CPP文件如下:


#include "include.h"

 

TIM_HandleTypeDef htim3;

 

void CTimer3::SetMode(uint8_t mode)

{

  TIM_ClockConfigTypeDef sClockSourceConfig;

  TIM_MasterConfigTypeDef sMasterConfig;

 

  htim3.Instance = TIM3;

if (mode == 0)

{

htim3.Init.Prescaler = 72;

htim3.Init.CounterMode = TIM_COUNTERMODE_UP;

htim3.Init.Period = 1000;

htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;

}

  if (HAL_TIM_Base_Init(&htim3) != HAL_OK)

  {

    Target.ErrorHandler(__FILE__, __LINE__);

  }

 

  sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;

  if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)

  {

    Target.ErrorHandler(__FILE__, __LINE__);

  }

 

  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;

  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;

  if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)

  {

    Target.ErrorHandler(__FILE__, __LINE__);

  }

HAL_TIM_Base_Start_IT(&htim3);

}

 

void TIM3_IRQHandler(void)

{

  HAL_TIM_IRQHandler(&htim3);

}

 

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

{

if (htim->Instance == htim3.Instance)

{

CommonTimer_InterruptFunction();

}

}

 

void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)

{

  if(htim_base->Instance==TIM3)

  {

    __HAL_RCC_TIM3_CLK_ENABLE();

    HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);

    HAL_NVIC_EnableIRQ(TIM3_IRQn);

  }

}

 

void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)

{

  if(htim_base->Instance==TIM3)

  {

    __HAL_RCC_TIM3_CLK_DISABLE();

    HAL_NVIC_DisableIRQ(TIM3_IRQn);

  }

}

    11、完成上述步驟后,還需對2個文件進行設(shè)置,首先設(shè)置stm32f4xx_hal_conf.h文件,打開相應(yīng)的驅(qū)動模塊,如下所示。


/* ########################## Module Selection ############################## */

/**

  * @brief This is the list of modules to be used in the HAL driver 

  */

#define HAL_MODULE_ENABLED  

 

#define HAL_ADC_MODULE_ENABLED

/* #define HAL_CRYP_MODULE_ENABLED   */

/* #define HAL_CAN_MODULE_ENABLED   */

/* #define HAL_CRC_MODULE_ENABLED   */

/* #define HAL_CRYP_MODULE_ENABLED   */

/* #define HAL_DAC_MODULE_ENABLED   */

/* #define HAL_DCMI_MODULE_ENABLED   */

/* #define HAL_DMA2D_MODULE_ENABLED   */

/* #define HAL_ETH_MODULE_ENABLED   */

/* #define HAL_NAND_MODULE_ENABLED   */

/* #define HAL_NOR_MODULE_ENABLED   */

/* #define HAL_PCCARD_MODULE_ENABLED   */

/* #define HAL_SRAM_MODULE_ENABLED   */

/* #define HAL_SDRAM_MODULE_ENABLED   */

/* #define HAL_HASH_MODULE_ENABLED   */

/* #define HAL_I2C_MODULE_ENABLED   */

/* #define HAL_I2S_MODULE_ENABLED   */

/* #define HAL_IWDG_MODULE_ENABLED   */

/* #define HAL_LTDC_MODULE_ENABLED   */

/* #define HAL_RNG_MODULE_ENABLED   */

/* #define HAL_RTC_MODULE_ENABLED   */

/* #define HAL_SAI_MODULE_ENABLED   */

/* #define HAL_SD_MODULE_ENABLED   */

/* #define HAL_MMC_MODULE_ENABLED   */

#define HAL_SPI_MODULE_ENABLED

#define HAL_TIM_MODULE_ENABLED   

/* #define HAL_UART_MODULE_ENABLED   */

/* #define HAL_USART_MODULE_ENABLED   */

/* #define HAL_IRDA_MODULE_ENABLED   */

/* #define HAL_SMARTCARD_MODULE_ENABLED   */

/* #define HAL_WWDG_MODULE_ENABLED   */

#define HAL_PCD_MODULE_ENABLED

/* #define HAL_HCD_MODULE_ENABLED   */

/* #define HAL_DSI_MODULE_ENABLED   */

/* #define HAL_QSPI_MODULE_ENABLED   */

/* #define HAL_QSPI_MODULE_ENABLED   */

/* #define HAL_CEC_MODULE_ENABLED   */

/* #define HAL_FMPI2C_MODULE_ENABLED   */

/* #define HAL_SPDIFRX_MODULE_ENABLED   */

/* #define HAL_DFSDM_MODULE_ENABLED   */

/* #define HAL_LPTIM_MODULE_ENABLED   */

#define HAL_GPIO_MODULE_ENABLED

#define HAL_DMA_MODULE_ENABLED

#define HAL_RCC_MODULE_ENABLED

#define HAL_FLASH_MODULE_ENABLED

#define HAL_PWR_MODULE_ENABLED

#define HAL_CORTEX_MODULE_ENABLED

    12、在stm32f4xx_it.h中添加相應(yīng)的中斷服務(wù)處理函數(shù),如下所示。


void NMI_Handler(void);

void HardFault_Handler(void);

void MemManage_Handler(void);

void BusFault_Handler(void);

void UsageFault_Handler(void);

void SVC_Handler(void);

void DebugMon_Handler(void);

void PendSV_Handler(void);

void SysTick_Handler(void);

void TIM3_IRQHandler(void);

void OTG_FS_IRQHandler(void);

    至此,就完成了整個驅(qū)動程序的移植工作,我所忽略的地方就是stm32f4xx_it.h文件,必須在這個文件中添加相應(yīng)的中斷服務(wù)處理函數(shù),才能夠使startup_stm32f401xc.s文件中中斷向量與C文件中的中斷服務(wù)處理函數(shù)對應(yīng)上,否則中斷服務(wù)處理函數(shù)得不到調(diào)用。


關(guān)鍵字:STM32F4  定時器  驅(qū)動程序  移植 引用地址:STM32F4 開發(fā)筆記7:定時器驅(qū)動程序的移植

上一篇:STM32F4 開發(fā)筆記8:解決USB CDC “該設(shè)備無法啟動”問題
下一篇:STM32F4 開發(fā)筆記6: LQFP64封裝引腳的兼容性

推薦閱讀

本文介紹miniUART的使用方法,miniUART是一組輕量型代碼,可以用于完成串口接收數(shù)據(jù)功能的快速實現(xiàn)。其可正確對2包數(shù)據(jù)按照時間間隔進行分割,使用簡單,代碼可靠。 可以按照下列步驟使用mininUART. 1、打開config.h文件,按照下圖所示的內(nèi)容代碼進行設(shè)置,設(shè)置為1表示啟用miniUART。 2、打開miniUART_config.h文件,對miniUART進行...
9月11日凌晨,蘋果正式推出了Arcade游戲服務(wù),該服務(wù)支持跨平臺使用,每個月都會推出免費的新游戲,每月售價為4.99美元/月。據(jù)介紹,Arcade游戲服務(wù)將于9月19日正式上線,屆時將會登陸全球150多個國家和地區(qū),首月還將提供免費體驗活動。Arcade初期將有超過100款游戲,包括首發(fā)獨家游戲Konami的《Frogger in Toy Town》、卡普空的《SHINSEKAI Into the ...
華為開發(fā)者大會2020今日舉行,華為消費者業(yè)務(wù)全球生態(tài)發(fā)展部總裁汪嚴旻發(fā)表演講。他表示,華為推出HMS生態(tài)一年以來,初步實現(xiàn)了華為手機沒有GMS服務(wù)的情況下基本可用。目前HMS已有6萬多個海外精品應(yīng)用,可滿足用戶日常所需。他還表示,華為即將開放全球3個生態(tài)合作實驗室(德國,波蘭,俄羅斯),5個開發(fā)者服務(wù)中心(羅馬尼亞,俄羅斯,埃及,墨西哥,馬來...
跌落神壇的“掃地茅”還能重回巔峰嗎?8月27日,科沃斯(603486.SH)發(fā)布2021年半年報顯示,上半年營收53.59億元,同比增長123.11%;凈利8.50億元,同比增長543.25%。盡管業(yè)績亮眼,但二級資本市場似乎并不買單。科沃斯在8月30日、31日連續(xù)大幅下跌,跌幅分別為10%、7.35%。5倍的凈利潤增長,為何沒有提振“掃地茅”的股價?在「不二研究」看來...

史海拾趣

問答坊 | AI 解惑

全球通用測試測量市場趨勢分析

根據(jù)測試測量世界tmworld與Frost & Sullivan的聯(lián)合調(diào)查,全球通用儀器市場的大部分份額仍然由示波器、頻譜分析儀、信號發(fā)生器、萬用表四種儀器把持。如圖(1)所示四種儀器所占份額依次為33.7%,17.3%,16.3%,13.1%。個人認為,頻譜分析儀之所以會 ...…

查看全部問答∨

TFTP: Desktop losing ACK, block number =3(無法傳輸nk)

pb通過以太網(wǎng)無法傳輸nk,串口調(diào)試信息                               TFTP: Desktop losing ACK, block number = 3      ...…

查看全部問答∨

wince嵌入式開發(fā)外包公司

大家好!最近有項目需要外包,有知道的廠家嗎推薦下多謝了!!…

查看全部問答∨

如何在c51中定義一個全局變量

如何在c51中定義一個全局變量…

查看全部問答∨

DM365DVR上TD模塊(LC6311)的網(wǎng)速測試的疑問

我的開發(fā)平臺是DM365DVR,通過USB方式將TD模塊(LC6311)連接到DM365DVR上,正確配置后,能夠成功撥號,也能夠通過TD網(wǎng)絡(luò)傳輸視頻,但是傳輸效果極差。CIF(352*288)格式的視頻每秒只能傳輸一到兩幀,而且畫面質(zhì)量也不好。更可氣的是傳不幾秒就斷 ...…

查看全部問答∨

系統(tǒng) 電池電量低掛起。

要做這個功能,希望大家說說。你們系統(tǒng)是在哪個位置做的這個功能,我好去看看我的代碼,謝謝大家。…

查看全部問答∨

新手緊急求助:232編程問題

具體事情如下: 傳感器測一個力,送到“TR700數(shù)字式重量變送器”上顯示。現(xiàn)在從“TR700數(shù)字式重量變送器”上接出的一個RS232接到電腦上,需要做的是在電腦上采集傳感器測得的數(shù)據(jù)并存儲下來。 從來沒做過這方面的工作,在網(wǎng)上查了一下還是毫無頭 ...…

查看全部問答∨

GPRS和PC通訊的問題(80求助)

GPRS模塊做數(shù)據(jù)傳輸時用SIM公司的那個SERVER.EXE軟件來和GPRS交互數(shù)據(jù)。主機是ADSL撥號上網(wǎng),用ipconfig查了一下有兩個地址,一個是寬帶地址一個是本地地址。把SERVER軟件打開發(fā)現(xiàn)它上面的IP地址是本地地址,端口是2020這該怎么辦啊 我怎么樣才能 ...…

查看全部問答∨

bsp中romStart的解壓縮過不去~

開發(fā)的硬件是mips架構(gòu)的CPU~ 郁悶了~在dos下編bootrom.bin,燒進flash后通過點燈觀察運行狀況 在romStart函數(shù)中復(fù)制rom代碼到ram已經(jīng)沒問題,之后可以成功調(diào)用rom中的點燈程序或者已經(jīng)復(fù)制到ram中的點燈程序拷貝。 但是解壓縮就是過不去~ 想問 ...…

查看全部問答∨

初學者

向各位高手請教一下,我是剛學51單片機的,8位CPU和片外32口線,16地址線是什么意思?盡量講的通俗易懂些,謝謝!…

查看全部問答∨
小廣播
設(shè)計資源 培訓 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 垫江县| 五常市| 尉犁县| 咸丰县| 阳春市| 北川| 彩票| 榆树市| 盐津县| 沙坪坝区| 准格尔旗| 东莞市| 罗平县| 赣榆县| 黄大仙区| 丹东市| 湘阴县| 乌兰县| 无棣县| 英德市| 全南县| 祁门县| 石台县| 桃园市| 永德县| 五指山市| 耒阳市| 安义县| 闻喜县| 女性| 册亨县| 郴州市| 拜城县| 名山县| 福安市| 时尚| 保定市| 得荣县| 嵊泗县| 墨竹工卡县| 孝昌县|