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

stm32怎麼配置dap

發布時間: 2023-03-09 16:46:17

① 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接受激光雷達怎麼配置

先將STM32初始化配置:需要初始化USART1和USART2。
再將激光雷達輸出數據信息轉化為距離:
因為我們使用的是USART2串口接收數據,所以我們先使能串口2的接收中斷。
HAL_UART_Receive_IT(&huart2,uart,1);
然後設置一些需要用到的量值。
int dist=99;
int check;
int count=10000;
int strength;
uint8_t uart[9];
const int HEADER=0X59;
在回調函數中,我們首先判斷第一個數據包幀頭,再判斷第二個數據包幀頭。如果都是0x59,則繼續接收剩下數據填滿數組,並按照協議對收到的數據進行校驗,然後就可以計算對應的參數了。
拓展:
STM32文件夾說明:
Libraries:存放庫文件(驅動)
Output:存放生成的項目文件,如HEX文件
Startup:存放啟動文件,STM32需要一個啟動文件才能工作
User:存放自己編寫的函數文件,如main函數,中斷函數等
APP:存放一些外設程序

熱點內容
sublimepython環境配置 發布:2025-05-20 02:36:13 瀏覽:578
cntv文件夾 發布:2025-05-20 02:33:20 瀏覽:219
vs設置編譯提示 發布:2025-05-20 02:33:10 瀏覽:217
android服務是什麼 發布:2025-05-20 02:19:31 瀏覽:201
什麼手機可以升到安卓十 發布:2025-05-20 02:19:24 瀏覽:570
手機U盤安卓的系統目錄里有什麼 發布:2025-05-20 02:13:08 瀏覽:849
python多進程鎖 發布:2025-05-20 02:12:23 瀏覽:293
n皇後演算法 發布:2025-05-20 01:49:15 瀏覽:66
如何配置圖形電腦 發布:2025-05-20 01:47:51 瀏覽:393
及解壓 發布:2025-05-20 01:44:49 瀏覽:416