91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 110KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-01
  • 語言: 其他
  • 標(biāo)簽: STM32F429??HAL??USART??DMA??

資源簡介

天下文章一般抄,只能靠自己實踐。本代碼用于STM32F429,使用HAL庫版本:STM32Cube_FW_F4_V1.11.0。精簡其他不需要的程序段,只留c和h文件,直接添加可用,已測試過。

資源截圖

代碼片段和文件信息

#include?“BSP_USARTDMA.h“

//stm32f4xx_hal_conf.h文件中修改啟用??#define?HAL_UART_MODULE_ENABLED
//stm32f4xx_hal_conf.h文件中修改啟用??#define?HAL_DMA_MODULE_ENABLED

/*
1、STM32F429有2個DMA控制器(DMA1和DMA2)每個控制器有8個數(shù)據(jù)流,每個數(shù)據(jù)流有8個通道(請求)。
2、支持外設(shè)到存儲器、存儲器到外設(shè)、存儲器到存儲器傳輸?shù)某R?guī)通道。(僅DMA2支持存儲器到存儲器的傳輸)
*/

UART_HandleTypeDef?UARTDMA_HD;
DMA_HandleTypeDef?UARTDMATX_HD;
DMA_HandleTypeDef?UARTDMARX_HD;

uint8_t?RX_BUF[RXBUF_SIZE];
volatile?uint8_t?RX_OK?=?0;
volatile?uint16_t?RX_CNT?=?0;

//初始化
void?_BSP_USARTDMA_Configuration(uint32_t?bRate)
{
??UARTDMA_HD.Instance?=?USARTx_NUM;??????????????????//串口編號
??UARTDMA_HD.Init.BaudRate?=?bRate;??????????????????//波特率
??UARTDMA_HD.Init.WordLength?=?UART_WORDLENGTH_8B;???//字長為8位格式
??UARTDMA_HD.Init.StopBits?=?UART_STOPBITS_1;????????//一個停止位
??UARTDMA_HD.Init.Parity?=?UART_PARITY_NONE;?????????//無奇偶校驗位
??UARTDMA_HD.Init.HwFlowCtl?=?UART_HWCONTROL_NONE;???//無硬件流控制
??UARTDMA_HD.Init.Mode?=?UART_MODE_TX_RX;????????????//全雙工收發(fā)模式
??UARTDMA_HD.Init.OverSampling?=?UART_OVERSAMPLING_16;???//16倍過采樣獲取更好的容錯性
??HAL_UART_Init(&UARTDMA_HD);????????????????????????//內(nèi)部調(diào)用__HAL_UART_ENABLE(handler);函數(shù)
????
??__HAL_UART_ENABLE_IT(&UARTDMA_HD?UART_IT_IDLE);???//開啟IDLE中斷,以幀方式接收不定長數(shù)據(jù)
??__HAL_DMA_ENABLE_IT(&UARTDMATX_HD?DMA_IT_TC);?????//開啟DMA傳輸完成中斷
??__HAL_DMA_ENABLE_IT(&UARTDMARX_HD?DMA_IT_TC);
??HAL_UART_Receive_DMA(&UARTDMA_HD?RX_BUF?RXBUF_SIZE);
}

//調(diào)用初始化函數(shù)HAL_UART_Init時,會先調(diào)用MSP初始化回調(diào)函數(shù),進(jìn)行引腳配置和NVIC配置
void?HAL_UART_MspInit(UART_HandleTypeDef?*huart)
{
??//GPIO端口設(shè)置
??GPIO_InitTypeDef?GPIO_InitStructure;

??if(huart->Instance?==?USART1)?????//如果是串口1,進(jìn)行串口1?MSP初始化
??{
????__HAL_RCC_GPIOA_CLK_ENABLE();?????//使能GPIOA時鐘
????__HAL_RCC_USART1_CLK_ENABLE();????//使能USART1時鐘
????__HAL_RCC_DMA2_CLK_ENABLE();??????//DMA2時鐘使能

????GPIO_InitStructure.Pin?=?GPIO_PIN_9?|?GPIO_PIN_10; //PA9(USART1_TX)\PA10(USART1_RX)
????GPIO_InitStructure.Mode?=?GPIO_MODE_AF_PP;??????????????//復(fù)用推挽輸出
????GPIO_InitStructure.Pull?=?GPIO_PULLUP;??????????????????//上拉
????GPIO_InitStructure.Speed?=?GPIO_SPEED_FREQ_VERY_HIGH; //高速
????GPIO_InitStructure.Alternate?=?GPIO_AF7_USART1;?????????//復(fù)用為USART1
????HAL_GPIO_Init(GPIOA?&GPIO_InitStructure);??????????????//初始化
????????
????//Tx?DMA配置
????//數(shù)據(jù)流選擇
????UARTDMATX_HD.Instance?=?DMA2_Stream7;
????//通道選擇
????UARTDMATX_HD.Init.Channel?=?DMA_CHANNEL_4;
????//存儲器到外設(shè)
????UARTDMATX_HD.Init.Direction?=?DMA_MEMORY_TO_PERIPH;
????//外設(shè)非增量模式UART只有一個DR寄存器,地址不能變化
????UARTDMATX_HD.Init.PeriphInc?=?DMA_PINC_DISABLE;
????//存儲器增量模式
????UARTDMATX_HD.Init.MemInc?=?DMA_MINC_ENABLE;
????//外設(shè)數(shù)據(jù)長度:8位一個字節(jié)
????UARTDMATX_HD.Init.PeriphDataAlignment?=?DMA_PDATAALIGN_BYTE;
????//存儲器數(shù)據(jù)長度:8位
????UARTDMATX_HD.Init.MemDataAlignment?=?DMA_MDATAALIGN_BYTE;
????//外設(shè)普通模式
????UARTDMATX_HD.Init.Mode?=?DMA_NORMAL;
????//中等優(yōu)先級
????UARTDMATX_HD.Init.Priority?=?DMA_PRIORITY_LOW;
????//關(guān)閉FIFO
????UARTDMATX_HD.Init.FIFOMode?=?DMA_FIFOMODE_DISABLE;??????????????
????//FIFO閥值選擇
????UARTDMATX_HD.Init.FIFOThres

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????6437??2019-06-03?00:13??USART使用DMA方式收發(fā)數(shù)據(jù)\BSP_USARTDMA.c

?????文件????????682??2019-06-03?00:06??USART使用DMA方式收發(fā)數(shù)據(jù)\BSP_USARTDMA.h

?????文件???????1019??2019-06-03?00:19??USART使用DMA方式收發(fā)數(shù)據(jù)\main.c

?????文件?????????92??2019-06-03?00:21??USART使用DMA方式收發(fā)數(shù)據(jù)\readme.txt

?????文件?????195675??2019-06-03?00:22??USART使用DMA方式收發(fā)數(shù)據(jù)\USART.jpg

?????目錄??????????0??2019-06-03?00:22??USART使用DMA方式收發(fā)數(shù)據(jù)

-----------?---------??----------?-----??----

???????????????203905????????????????????6


評論

共有 條評論