軟件:
STM32CubeMX V4.25.0
System Workbench V2.4
固件庫版本:
STM32Cube FW_F1 V1.6.1
硬件:
OneNet 麒麟座V2.3
在STM32CubeMX中新建項目,選擇正確的MCU型號
首先設(shè)置RCC和SYS,如下圖
啟用TIM1,選擇內(nèi)部時鐘源(Internal Clock)。
然后根據(jù)板子實際情況設(shè)置時鐘(麒麟座外部晶振是12M,STM32F103x的最高主頻是72M),如下圖
GPIO設(shè)置 PC7和 PC10為GPIO_OUTPUT, (這是麒麟座V2.3的四個LED管腳其中的兩個)
設(shè)置其中一個默認(rèn)為高電平,另一個默認(rèn)為低電平,User Label分別是LED1和LED4。
設(shè)置TIM1,啟用中斷
由于TIM1是掛在APB2總線上(如何判斷當(dāng)前計時器在哪個總線,文章最后會描述方法),查看時鐘樹我們知道APB2當(dāng)前頻率為72MHz,我們希望每秒鐘發(fā)生2次中斷,就把預(yù)分頻系數(shù)設(shè)置為36000-1,自動重載值為1000-1,得到的計時器更新中斷頻率即為72,000,000/36000/1000=2Hz。
Project - setting ,ToolChain/IDE選擇 SW4STM32
勾選這里
保存以后,點擊任務(wù)欄的生成代碼圖標(biāo)
生成完畢以后在彈出的對話框點擊"Open Project", System Workbench自動打開Eclipse并導(dǎo)入和打開了項目,然后展開項目樹,雙擊編輯main.c,在while(1)之前啟用TIM1并使能其中斷
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start_IT(&htim1);
/* USER CODE END 2 */
然后添加如下代碼(注意此回調(diào)函數(shù)默認(rèn)是__weak定義的,所以我們在這里需要重新定義一下,而且此回調(diào)函數(shù)是所有定時器共用的,所以我們需要先通過if (htim->Instance == htim1.Instance)判斷它是哪個定時器中斷在調(diào)用)
/* USER CODE BEGIN 4 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if (htim->Instance == htim1.Instance)
{
/* Toggle LED */
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
HAL_GPIO_TogglePin(LED4_GPIO_Port,LED4_Pin);
}
}
/* USER CODE END 4 */
然后右鍵點擊項目,選擇Properties, Run-Debug Settings, 點擊右側(cè)的New,在彈出對話框中選擇Ac6 STM32 Debugging。
然后任務(wù)欄上點擊Run圖,當(dāng)然會報錯的,原因請查看另一篇我的博客(https://blog.csdn.net/toopoo/article/details/79680323),所以需要右鍵點擊 項目名Run.cfg ,給它改個名字,
然后右鍵點擊項目樹里面的項目名稱,選擇“Propeties”,然后在Run/Debug Settings-選擇項目名-Edit-Main-C/C++Application那里點擊“Search Project”,然后選擇出現(xiàn)的默認(rèn)的elf文件:
然后在Debugger-User Defined-Browse 那里選擇你自己改名的配置文件:
然后右鍵點擊那個新的cfg文件,選擇"Open With - Text Editor", 進行如下更改:
source [find interface/stlink.cfg] 更改為 source [find interface/stlink-v2.cfg]
reset_config srst_only srst_nogate connect_assert_srst 這一行改為 reset_config none
然后再Run一下,就可以了。
程序的作用是讓LED1和LED4交替閃爍,每0.5秒進行一次交替(2Hz)。
如前文所述,我們?nèi)绾沃繲IM1是連接到APB2上的呢?我們可以查代碼,打開main.c
看到
static void MX_GPIO_Init(void);
右鍵點擊 MX_GPIO_Init(void),選擇菜單的“Open Declaration”,然后跳轉(zhuǎn)到它的定義
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(LED4_GPIO_Port, LED4_Pin, GPIO_PIN_RESET);
/*Configure GPIO pins : LED1_Pin LED4_Pin */
GPIO_InitStruct.Pin = LED1_Pin|LED4_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
}
在HAL_RCC_GPIOD_CLK_ENABLE( )上面點擊右鍵,選擇菜單的“Open Declaration”。會跳轉(zhuǎn)到 stm32f1xx_hal_rcc.h文件,里面代碼如下:
#define __HAL_RCC_GPIOD_CLK_ENABLE() do { \
__IO uint32_t tmpreg; \
SET_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPDEN);\
/* Delay after an RCC peripheral clock enabling */\
tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPDEN);\
UNUSED(tmpreg); \
} while(0U)
#define __HAL_RCC_ADC1_CLK_ENABLE() do { \
__IO uint32_t tmpreg; \
SET_BIT(RCC->APB2ENR, RCC_APB2ENR_ADC1EN);\
/* Delay after an RCC peripheral clock enabling */\
tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_ADC1EN);\
UNUSED(tmpreg); \
} while(0U)
#define __HAL_RCC_TIM1_CLK_ENABLE() do { \
__IO uint32_t tmpreg; \
SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN);\
/* Delay after an RCC peripheral clock enabling */\
tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN);\
UNUSED(tmpreg); \
} while(0U)
可以看到TIM_CLK相關(guān)寄存器是APB2ENR,說明它是掛在APB2總線上的。
或者我們也可以查看數(shù)據(jù)手冊
可以看到TIM1和TIM8是掛在APB2上的。
上一篇:使用STM32CubeMX開發(fā):按鍵中斷實驗
下一篇:STM32CubeMX串口接收中斷
推薦閱讀
史海拾趣
隨著公司業(yè)務(wù)的不斷擴展,愛浦電子于XXXX年成立了廣州優(yōu)聯(lián)電氣科技有限公司作為其分支機構(gòu)。這一舉措不僅進一步擴大了公司的業(yè)務(wù)范圍和市場影響力,還為公司提供了更多的發(fā)展機遇和合作伙伴。廣州優(yōu)聯(lián)電氣科技有限公司在愛浦電子的業(yè)務(wù)開拓、經(jīng)營及配套服務(wù)方面發(fā)揮了重要作用,推動了公司整體業(yè)務(wù)的快速發(fā)展。
這五個故事只是愛浦電子發(fā)展起來的一部分縮影,它們展現(xiàn)了公司在技術(shù)創(chuàng)新、市場拓展、服務(wù)升級、創(chuàng)新引領(lǐng)以及分支機構(gòu)成立等方面的努力和成就。正是這些不懈的努力和持續(xù)的進步,使得愛浦電子在電子行業(yè)中脫穎而出,成為一家備受矚目的高新技術(shù)企業(yè)。
在成功推出高效能芯片后,艾譜科公司開始積極拓展市場。公司憑借其產(chǎn)品的技術(shù)優(yōu)勢,與多家知名電子產(chǎn)品制造商建立了合作關(guān)系。同時,艾譜科還積極參加國際電子展會,向全球客戶展示其產(chǎn)品的卓越性能。隨著市場知名度的提高,艾譜科的訂單量逐漸增加,公司規(guī)模也不斷擴大。
隨著公司的發(fā)展,Vishay意識到通過收購可以迅速擴大市場份額和提升技術(shù)實力。從1985年開始,Vishay進行了一系列戰(zhàn)略收購,包括達勒電子(Dale Electronics)、迪勞瑞電子(Draloric Electronics)和思芬尼(Sfernice)等。這些收購不僅為公司帶來了更多的產(chǎn)品線,如電感、專用電容等無源元件,還極大地增強了Vishay在電子元件市場的競爭力。通過這一系列收購,Vishay逐漸發(fā)展成為一家擁有廣泛產(chǎn)品線的電子元件制造商。
進入21世紀(jì),隨著全球電子產(chǎn)業(yè)的快速發(fā)展,三禮公司看到了中國內(nèi)地市場的巨大潛力。2006年,公司決定擴大在中國內(nèi)地的生產(chǎn)規(guī)模,投資建構(gòu)了40,000平方米的廠房,并成立了專業(yè)客制化產(chǎn)品廠——和瑞電子(3LQ)。這一舉措不僅提升了公司的生產(chǎn)能力,還使得產(chǎn)品更加符合市場需求,進一步鞏固了公司的市場地位。
近年來,隨著環(huán)保意識的提升和綠色能源的普及,三禮公司也積極投身于綠色生產(chǎn)領(lǐng)域。2019年,公司在廣西南寧開始建設(shè)新廠,預(yù)定投資3億元人民幣用于廠房及自動化設(shè)備的建設(shè)。新廠總建筑面積達70,000平方米,將成為公司目前所有生產(chǎn)基地中規(guī)模最大的一個。同時,公司還計劃全面架設(shè)太陽能發(fā)電系統(tǒng),目標(biāo)是在未來三年內(nèi)承擔(dān)公司總需求電量的30%。這一舉措不僅有助于降低公司的生產(chǎn)成本,還體現(xiàn)了公司對環(huán)保事業(yè)的積極貢獻。
這五個故事只是三禮公司發(fā)展歷程中的一部分縮影,但它們卻生動地展現(xiàn)了公司在電子行業(yè)中的成長軌跡和不懈努力。從北美市場的拓展到中國內(nèi)地生產(chǎn)能力的擴大,再到技術(shù)突破和新產(chǎn)品開發(fā),三禮公司始終保持著敏銳的市場洞察力和強大的創(chuàng)新能力。同時,公司還積極投身于綠色生產(chǎn)領(lǐng)域,為推動電子行業(yè)的可持續(xù)發(fā)展做出了積極貢獻。
用26MHz的晶體好一點,還是16MHz的好一點,請指教,謝謝??? 用26MHz的晶體好一點,還是16MHz的好一點,請指教,謝謝??? 我的藍牙電路可以使用26MHz的晶體,也可以使用16M的,通過內(nèi)部的電路倍頻,均可達到使用要求,那請問用26MHz的晶體好一點,還是16MHz的好一點,請指教,謝謝!!!個人認(rèn)為,26MHZ的頻率 ...… 查看全部問答∨ |
|
該裝置的電路工作原理見圖13。當(dāng)鐵絲網(wǎng)Fe完好時,LSE的①、②腳間串通,其④腳輸出高電平,三極管VT截止,繼電器J處于釋放狀態(tài),報警器不工作。如果鐵絲網(wǎng)Fe被人剪斷(任意一段),此時LSE的①、②腳相當(dāng)于開路,它的④腳則由原來的高電平狀態(tài)轉(zhuǎn)變 ...… 查看全部問答∨ |
|
我的做法是Server與Client建立連接,Server端生成一個Custom負(fù)責(zé)接收Client的數(shù)據(jù)包。 程序在Server端接收文件,調(diào)OnClientRead函數(shù): pSocket->m_pTCPServer->OnClientRead(pSocket->m_pTCPServer->m_pOwnerWnd, pSocket, recvBuf, recvLen); ...… 查看全部問答∨ |
MSG_WAR信息應(yīng)該打印在哪里,是打印在WINCE的界面上 ,還是打印在 調(diào)試窗口里? 如何設(shè)置才能 出現(xiàn)MSG_WAR信息?… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 下載白皮書 答題贏好禮|TE《智能監(jiān)控應(yīng)用連接解決方案指南》
- 贏京東卡 室內(nèi)空氣隱患大作戰(zhàn)——英飛凌XENSIV™PAS CO2傳感器
- 下載汽車電氣化精品文章,贏【體脂秤、羅技鼠標(biāo)、手持風(fēng)扇】,開啟MPS汽車技術(shù)進階之旅!
- CadenceLIVE China 2022中國線上用戶大會 報名中!
- 免費測評|ESP32-S2-Kaluga-1新型多媒體開發(fā)板,靈活拆裝,滿足多種需求
- 【有獎下載】英飛凌《時尚小家電功率器選型指南》,詳解兼具強大功能與潮流款式的小家電設(shè)計!
- 有獎直播 | 微軟 Azure Sphere助力穩(wěn)定,安全和靈活的物聯(lián)網(wǎng)解決方案
- ADI軟件定義無線電(SDR)專題文章
- 富士通白皮書有獎下載|FRAM高性能存儲器優(yōu)化車載電子系統(tǒng)