當前位置:首頁 » 存儲配置 » stm32怎麼配置

stm32怎麼配置

發布時間: 2022-01-13 04:51:08

A. 中斷向量表STM32怎樣配置

如果你使用的是ST的庫的話,那麼在匯編啟動文件中已經定義好了。和大多數晶元不一樣的是,stm32的中斷向量表中存放的不是一條跳轉指令,而是一個入口地址。假如說要自己編寫的話,一定要用這樣的方式:DCD XXXXX (其中XXXX就是中斷服務函數的入口地址,至於轉到這個函數由晶元自己處理)
中斷向量表默認情況下起始於0x04,(0x00用於堆棧棧頂的地址).對於STM32來說,中斷向量表的長度大概是60多還是80多字(記不太清了).每個字代表一個中斷向量.
假如使用的是官方庫函數的話,那麼所有的中斷向量表都已經定義好了.比如,TIM1的中斷他可能就定義了類似 DCD TIM1ISR 之類的語句
那麼我們在主函數中只要定義一個一個isr即可, 比如 定義一個void TIM1ISR()函數就行(必須與那麼函數對應).然後設置下nvic和相關外設寄存器即可.
中斷的工作過程就是中斷向量的映射過程.至於中斷重映射是指把中斷向量表移動到其它的位置上去.通常和分散載入一起使用,為了使程序在RAM中運行,自然也要把中斷向量表放到RAM中,加快程序的運行速度.如果是新手,先別研究這么深的內容,就把中斷向量表定死在flash的開頭部分,默認地址即可.

B. 關於stm32單片機的引腳配置:

STM32F10xxx參考手冊 中文英文都有



C. stm32需要什麼電腦配置

兩三千的都沒問題。只要裝個keil罷了。再新潮一點,裝個CubeMX。再全面一點,再裝個IAR。配置沒什麼太高要求。

D. STM32的時鍾到底如何配置

時鍾配置的話,你可以先想好自己的程序裡面需要用到哪些外設,然後根據時鍾樹打開相應的外設時鍾就行了。我這里給你一個一般的時鍾配置的子程序吧:
void rcc_configuration(void)
{
ErrorStatus HSEStartUpStatus; //定義變數HSEStartUpStatus
RCC_DeInit(); //RCC重新配置
RCC_HSEConfig(RCC_HSE_ON); //打開HSE時鍾
HSEStartUpStatus = RCC_WaitForHSEStartUp(); //讀入RCC狀態
if(HSEStartUpStatus == SUCCESS) //HSE時鍾穩定
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //Flash預取緩沖使能;
FLASH_SetLatency(FLASH_Latency_2); //72MHz運行時,Flash需要等到2個周期;
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); //使用外部時鍾的9倍作為PLL時鍾;
RCC_PLLCmd(ENABLE); //使能PLL;

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) //等待PLL時鍾穩定;
{
}

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //把系統時鍾切換到PLL時鍾;

while(RCC_GetSYSCLKSource() != 0x08) //判斷PLL是否是系統時鍾
{
}
}

下面這個是匯流排上的時鍾配置:
RCC_HCLKConfig(RCC_SYSCLK_Div1); //主時鍾為72MHz
RCC_PCLK2Config(RCC_HCLK_Div1); //APB2時鍾為72MHz
RCC_PCLK1Config(RCC_HCLK_Div2); //APB1時鍾為36MHz
RCC_ADCCLKConfig(RCC_PCLK2_Div4); //ADC時鍾為18MHz

你也可以去看一下ST官方介紹庫函數的文檔,在官網上面有的。

E. stm32串口5怎麼配置

STM32串口配置的一般步驟(庫函數)
(1)串口時鍾使能:RCC_APBxPeriphClockCmd();
GPIO時鍾使能:RCC_AHBxPeriphClockCmd();
(2)引腳復用映射:GPIO_PinAFConfig();
(3)GPIO埠模式配置:GPIO_Init(); 模式配置為GPIO_Mode_AF
(4)串口參數初始化:USART_Init();
(5)開啟中斷並且初始化NVIC(如果需要開啟中斷才需要這個步驟)
NVIC_Init();
USART_ITConfig();
(6)使能串口:USART_Cmd();
(7)編寫中斷處理函數:USARTx_IRQHandler();
(8)串口數據收發:
void USART_SendData();//發送數據到串口,DR
uint16_t USART_ReceiveData();//接收數據,從DR讀取接收的數據
(9)串口傳輸狀態獲取:
FlagStatus USART_GetFlagStatus();
void USART_ClearITPendingBit();更加詳細的可以在闖客網技術論壇進行查看的。

範例代碼:

#include"stm32f4xx.h"
#include"usart.h"

/*中斷服務函數*/
voidUSART1_IRQHandler(void)
{
uint16_trecv;

if(USART_GetFlagStatus(USART1,USART_IT_RXNE))
{
recv=USART_ReceiveData(USART1);
USART_SendData(USART1,recv);
}
}


voidUsart1_Demo_Init(void)
{
GPIO_InitTypeDefGPIOA_InitStruct;
USART_InitTypeDefUSART1_InitStruct;
NVIC_InitTypeDefNVIC_InitStruct;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);/*使能USART1時鍾*/
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);/*使能GPIOA的時鍾*/

/*將PA9和PA10映射到串口1*/
GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);

/*設置GPIO埠模式*/
GPIOA_InitStruct.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_10;
GPIOA_InitStruct.GPIO_Mode=GPIO_Mode_AF;
GPIOA_InitStruct.GPIO_OType=GPIO_OType_PP;
GPIOA_InitStruct.GPIO_PuPd=GPIO_PuPd_UP;
GPIOA_InitStruct.GPIO_Speed=GPIO_Speed_100MHz;
GPIO_Init(GPIOA,&GPIOA_InitStruct);

/*串口參數初始化*/
USART1_InitStruct.USART_BaudRate=115200;
USART1_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART1_InitStruct.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
USART1_InitStruct.USART_Parity=USART_Parity_No;
USART1_InitStruct.USART_StopBits=USART_StopBits_1;
USART1_InitStruct.USART_WordLength=USART_WordLength_8b;
USART_Init(USART1,&USART1_InitStruct);

/*使能USART1*/
USART_Cmd(USART1,ENABLE);

/*使能串口使用的中斷*/
NVIC_InitStruct.NVIC_IRQChannel=USART1_IRQn;
NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=1;
NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;
NVIC_Init(&NVIC_InitStruct);
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
}

intmain(void)
{
/*設置中斷分組*/
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
Usart1_Demo_Init();

while(1);
}

F. STM32 KEIL怎麼配置選項字

你說的應該是目標選項配置,進入配置就行了。

Keil(MDK-ARM)系列教程(三)_工程目標選項配置(Ⅰ):
http://blog.csdn.net/ybhuangfugui/article/details/51655502

Keil系列教程:
http://blog.csdn.net/column/details/13472.html

G. stm32f103 串口3怎麼配置

下載個STM32CUBEMX進行圖形化配置很方便。
要不你可以看看ST的UART常式,無非注意外設時鍾、管腳配置的確認及
調整。cube庫里配置如下:
/* Put the USART peripheral in the Asynchronous mode (UART Mode) */
/* UART configured as follows:
- Word Length = 8 Bits (7 data bit + 1 parity bit) : BE CAREFUL : Program 7 data bits + 1 parity bit in PC HyperTerminal
- Stop Bit = One Stop bit
- Parity = ODD parity
- BaudRate = 9600 baud
- Hardware flow control disabled (RTS and CTS signals) */
UartHandle.Instance = USARTx;
UartHandle.Init.BaudRate = 9600;
UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
UartHandle.Init.StopBits = UART_STOPBITS_1;
UartHandle.Init.Parity = UART_PARITY_ODD;
UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
UartHandle.Init.Mode = UART_MODE_TX_RX;
if (HAL_UART_Init(&UartHandle) != HAL_OK)
{
/* Initialization Error */
Error_Handler();
}

H. 如何使用STM32

關於獲取ST公司的STM32固件庫源碼,有幾種方法。我們可以在網路上搜,網上有進行了分享,也可以到ST公司的官網進行查找並下載。不過,如果英文不好的話,要在官網上找到STM32固件庫確實是件很吃力的事。在官網上可以根據英文提示按不同條件進行篩選,具體操作如下圖所示:

END
第二步:新建工程文件夾——《STM32工程模板》
首先,新建工程文件夾《STM32工程模板》,然後再在該文件夾下新建6個文件夾,分別為:《Doc》、《Libraries》、《Listing》、《Output》、《Project》和《User》。其中,《Doc》用於存放各種說明文檔;《Libraries》用於存放各種庫文件;《Listing》用於存放編譯時產生的中間文件;《Output》用於存放生成的下載所需的文件;《Project》用於存放工程文件;《User》用於存放用戶文件,即我們自己編寫的各種源文件。具體情況如下圖所示:

END
第三步:向建立的工程文件夾中添加庫文件
將庫文件中的inc和src文件夾復制到模板工程文件夾下的FWLIB文件夾。具體操作情況如下圖:
將庫文件中CoreSupport文件夾下的文件復制到工程模板文件夾下的CMSIS文件夾。具體操作情況如下圖:
將庫文件中DeviceSupport文件夾下的相關文件復制到工程模板文件夾下的CMSIS文件夾。具體操作情況如下圖:
將庫文件中startup文件夾下arm中的文件全部復制到工程模板文件夾下的startup文件夾。具體操作情況如下圖:
將庫文件中Project文件夾下的相關文件復制到工程模板文件夾下的User文件夾中。具體操作情況如下圖:
第四步:使用MDK(Keil)新建工程模板
首先得選擇CPU,這個在新建工程時,會有一個選擇晶元的界面,我們只需按提示以及自己的實際情況來選擇就好了。具體操作情況如下圖:
更改工程名(將默認的工程名改為「Template」的方法:選中工程,按「F2」鍵)並為工程添加項目組(Add group to project)。具體操作情況如下圖:
分別向各個項目組中添加我們剛剛從庫中復制過來的文件文件(Add files to group)。具體操作情況如下圖:
第五步:工程配置
配置Target選項卡。具體操作情況如下圖:

配置Output選項卡。具體操作情況如下圖:

配置Listing選項卡。具體操作情況如下圖:

配置C/C++選項卡。具體操作情況如下圖:

配置Debug選項卡。具體操作情況如下圖:

配置Utilities選項卡。具體操作情況如下圖:

熱點內容
hyperv安裝linux 發布:2024-11-15 02:05:37 瀏覽:302
小螞蟻電動汽車哪個配置好 發布:2024-11-15 01:53:18 瀏覽:24
c語言聯合體 發布:2024-11-15 01:52:36 瀏覽:108
雲伺服器下載軟體提示 發布:2024-11-15 01:51:55 瀏覽:755
ip廣播音柱必須要伺服器嗎 發布:2024-11-15 01:51:46 瀏覽:643
本地伺服器怎麼搭建路由器 發布:2024-11-15 01:42:34 瀏覽:280
pythonnlst 發布:2024-11-15 01:11:12 瀏覽:284
安卓手機怎麼注冊蘋果雲 發布:2024-11-15 01:05:00 瀏覽:408
資料庫設計模板 發布:2024-11-15 00:47:25 瀏覽:826
編程的悟性 發布:2024-11-15 00:47:24 瀏覽:734