① 如何使用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選項卡。具體操作情況如下圖:
② 關於stm32單片機的引腳配置:
STM32F10xxx參考手冊 中文英文都有
③ stm32 的添加功能怎麼配置 怎麼寫
請問你要添加什麼功能?
④ stm32 f103 串口3 怎麼配置
一、 STM32的輸入輸出管腳有下面8種(4輸入 2輸出 2復用輸出)可能的配置: ① 浮空輸入_IN_FLOATING ② 帶上拉輸入_IPU ③ 帶下拉輸入_IPD ④ 模擬輸入_AIN ⑤ 開漏輸出_OUT_OD ⑥ 推挽輸出_OUT_PP ⑦ 復用功能的推挽輸出_AF_PP ⑧ 復用功能的開漏輸出
⑤ 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();
}
⑥ 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);
}
⑦ stm32需要什麼電腦配置。
兩三千的都沒問題。只要裝個keil罷了。再新潮一點,裝個CubeMX。再全面一點,再裝個IAR。配置沒什麼太高要求。
⑧ STM32 KEIL怎麼配置選項字
你說的應該是目標選項配置,進入配置就行了。
Keil(MDK-ARM)系列教程(三)_工程目標選項配置(Ⅰ):
http://blog.csdn.net/ybhuangfugui/article/details/51655502
Keil系列教程:
http://blog.csdn.net/column/details/13472.html