GPIO(General Purpose Input/Output)
用于控制端口的讀寫操作。
-
GPIO_Init:初始化GPIO端口。
GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // 配置端口Pin號 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 配置輸出推挽模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 配置輸出速度 GPIO_Init(GPIOA, &GPIO_InitStructure); // 初始化GPIOA端口
-
GPIO_WritePin、GPIO_ReadPin:寫入或讀取指定GPIO引腳的狀態(tài)。
GPIO_WritePin(GPIOA, GPIO_Pin_0, GPIO_PIN_SET); // 將GPIOA的Pin_0引腳狀態(tài)設(shè)置為高 uint8_t pin_state = GPIO_ReadPin(GPIOA, GPIO_Pin_0); // 讀取GPIOA的Pin_0引腳狀態(tài)
-
GPIO_SetPin:設(shè)置指定GPIO引腳的狀態(tài)為高電平。
GPIO_SetPin(GPIOA, GPIO_Pin_0); // 將GPIOA的Pin_0引腳狀態(tài)設(shè)置為高電平
-
GPIO_ResetPin:將指定GPIO引腳的狀態(tài)復(fù)位為低電平。
GPIO_ResetPin(GPIOA, GPIO_Pin_0); // 將GPIOA的Pin_0引腳狀態(tài)復(fù)位為低電平
NVIC(Nested Vectored Interrupt Controller)
用于管理中斷相關(guān)操作。
-
NVIC_EnableIRQ:使能指定的中斷。
NVIC_EnableIRQ(USART1_IRQn); // 使能USART1中斷
-
NVIC_DisableIRQ:禁用指定的中斷。
NVIC_DisableIRQ(USART1_IRQn); // 禁用USART1中斷
-
NVIC_SetPriority:設(shè)置指定中斷的優(yōu)先級。
NVIC_SetPriority(USART1_IRQn, 2); // 設(shè)置USART1中斷的優(yōu)先級為2
DMA(Direct Memory Access)
用于實現(xiàn)高速數(shù)據(jù)傳輸,減輕CPU負荷。
- DMA_Init:初始化DMA通道。
DMA_InitTypeDef DMA_InitStructure; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&USART1->DR; // 外設(shè)基地址 DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&data; // 存儲器基地址 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST; // 方向為從外設(shè)到存儲器 DMA_InitStructure.DMA_BufferSize = sizeof(data); // 數(shù)據(jù)大小 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // 禁止外設(shè)地址增量 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; // 使能存儲器地址增量 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; // 外設(shè)數(shù)據(jù)寬度為字節(jié) DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; // 存儲器數(shù)據(jù)寬度為字節(jié) DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; // 正常模式 DMA_InitStructure.DMA_Priority = DMA_Priority_High; // 高優(yōu)先級 DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; // 禁止存儲器到存儲器傳輸 DMA_Init(DMA1_Channel4, &DMA_InitStructure); // 初始化DMA通道
- DMA_Start:啟動DMA傳輸。
DMA_Start(DMA1_Channel4); // 啟動DMA1的通道4傳輸
- DMA_Stop:停止DMA傳輸。
DMA_Stop(DMA1_Channel4); // 停止DMA1的通道4傳輸
USART(Universal Synchronous/Asynchronous Receiver/Transmitter)
用于串口通信。
- USART_Init:初始化串口。
USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = 115200; // 波特率為115200
USART_InitStructure.USART_WordLength = USART_WordLength_8b; // 數(shù)據(jù)位長度為8位
USART_InitStructure.USART_StopBits = USART_StopBits_1; // 停止位為1位
USART_InitStructure.USART_Parity = USART_Parity_No; // 無奇偶校驗位
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; // 支持接收和發(fā)送模式
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; // 無硬件流控制
USART_Init(USART1, &USART_InitStructure); // 初始化USART1
- USART_SendData:向串口發(fā)送數(shù)據(jù)。
USART_SendData(USART1, data); // 向USART1串口發(fā)送數(shù)據(jù)
- USART_ReceiveData:從串口接收數(shù)據(jù)。
data = USART_ReceiveData(USART1); // 從USART1串口接收數(shù)據(jù)
- USART_ITConfig:配置串口中斷。
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); // 配置USART1的接收中斷使能
TIM(Timer)
用于定時器功能。文章來源:http://www.zghlxwxcb.cn/news/detail-622628.html
- TIM_TimeBaseInit:初始化定時器。
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_TimeBaseStructure.TIM_Prescaler = 7200; // 預(yù)分頻系數(shù)
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // 計數(shù)模式為向上計數(shù)
TIM_TimeBaseStructure.TIM_Period = 1000; // 自動重裝載值
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; // 時鐘分頻因子
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); // 初始化TIM2定時器
- TIM_Cmd:啟動或停止定時器計數(shù)。
TIM_Cmd(TIM1, ENABLE); // 啟動TIM1計數(shù)
TIM_Cmd(TIM2, DISABLE); // 停止TIM2計數(shù)
- TIM_GetCounter:獲取定時器的當前計數(shù)值。
uint16_t counter = TIM_GetCounter(TIM3); // 獲取TIM3的當前計數(shù)值
EXTI(External Interrupt)
外部中斷,用于響應(yīng)外部事件觸發(fā)的中斷。文章來源地址http://www.zghlxwxcb.cn/news/detail-622628.html
- EXTI_Init:初始化外部中斷線路。
EXTI_InitTypeDef EXTI_InitStruct;
EXTI_InitStruct.Line = EXTI_Line0; // 外部中斷線路號
EXTI_InitStruct.Mode = EXTI_Mode_Interrupt; // 中斷模式
EXTI_InitStruct.Trigger = EXTI_Trigger_Rising; // 觸發(fā)方式
EXTI_InitStruct.GPIOSource = GPIO_PortSourceGPIOA; // GPIO端口源
EXTI_InitStruct.GPIO_PinSource = GPIO_PinSource0; // GPIO引腳源
EXTI_Init(&EXTI_InitStruct);
- EXTI_ClearFlag:清除外部中斷標志位。
EXTI_ClearFlag(EXTI_Line0);
- EXTI_GetITStatus:獲取外部中斷狀態(tài)。
if (EXTI_GetITStatus(EXTI_Line0) != RESET)
{
// 外部中斷事件已發(fā)生
}
到了這里,關(guān)于【物聯(lián)網(wǎng)】stm32標準庫開發(fā)常用函數(shù)的使用和代碼說明的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!