初始化:

 1 void MX_USART1_UART_Init(void)
2 {
3
4 /* USER CODE BEGIN USART1_Init 0 */
5
6 /* USER CODE END USART1_Init 0 */
7
8 LL_USART_InitTypeDef USART_InitStruct = {0};
9
10 LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
11
12 /* Peripheral clock enable */
13 LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_USART1);
14
15 LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOA);
16
17 LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMA1);
18 /**USART1 GPIO Configuration
19 PA9 ------> USART1_TX
20 PA10 ------> USART1_RX
21 */
22 GPIO_InitStruct.Pin = LL_GPIO_PIN_9;
23 GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
24 GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
25 GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
26 GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
27 GPIO_InitStruct.Alternate = LL_GPIO_AF_1;
28 LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
29
30 GPIO_InitStruct.Pin = LL_GPIO_PIN_10;
31 GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
32 GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
33 GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
34 GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
35 GPIO_InitStruct.Alternate = LL_GPIO_AF_1;
36 LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
37
38 /* USART1 DMA Init */
39 LL_DMA_DeInit(DMA1, LL_DMA_CHANNEL_3);
40 /* USART1_RX Init */
41 LL_DMA_SetDataTransferDirection(DMA1, LL_DMA_CHANNEL_3, LL_DMA_DIRECTION_PERIPH_TO_MEMORY);
42
43 LL_DMA_SetChannelPriorityLevel(DMA1, LL_DMA_CHANNEL_3, LL_DMA_PRIORITY_LOW);
44
45 LL_DMA_SetMode(DMA1, LL_DMA_CHANNEL_3, LL_DMA_MODE_NORMAL);
46
47 LL_DMA_SetPeriphIncMode(DMA1, LL_DMA_CHANNEL_3, LL_DMA_PERIPH_NOINCREMENT);
48
49 LL_DMA_SetMemoryIncMode(DMA1, LL_DMA_CHANNEL_3, LL_DMA_MEMORY_INCREMENT);
50
51 LL_DMA_SetPeriphSize(DMA1, LL_DMA_CHANNEL_3, LL_DMA_PDATAALIGN_BYTE);
52
53 LL_DMA_SetMemorySize(DMA1, LL_DMA_CHANNEL_3, LL_DMA_MDATAALIGN_BYTE);
54
55 /* USER CODE BEGIN USART1_Init 1 */
56 LL_DMA_SetMemoryAddress(DMA1,LL_DMA_CHANNEL_3,(uint32_t)g_sSecUartInfo.ucRbuf);
57 LL_DMA_SetPeriphAddress(DMA1,LL_DMA_CHANNEL_3,(uint32_t)&USART1->RDR);
58 LL_DMA_SetDataLength(DMA1,LL_DMA_CHANNEL_3,Sec_UART_MAX_LEN);
59
60 /* USER CODE END USART1_Init 1 */
61 USART_InitStruct.BaudRate = 1200;
62 USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B;
63 USART_InitStruct.StopBits = LL_USART_STOPBITS_1;
64 USART_InitStruct.Parity = LL_USART_PARITY_NONE;
65 USART_InitStruct.TransferDirection = LL_USART_DIRECTION_RX;
66 USART_InitStruct.HardwareFlowControl = LL_USART_HWCONTROL_NONE;
67 USART_InitStruct.OverSampling = LL_USART_OVERSAMPLING_16;
68 LL_USART_Init(USART1, &USART_InitStruct);
69 LL_USART_DisableIT_CTS(USART1);
70 LL_USART_ConfigAsyncMode(USART1);
71 LL_USART_Enable(USART1);
72 /* USER CODE BEGIN USART1_Init 2 */
73 LL_USART_EnableDMAReq_RX(USART1);
74 LL_DMA_EnableChannel(DMA1,LL_DMA_CHANNEL_3);
75 /* USER CODE END USART1_Init 2 */
76
77 }

数据处理:


if(LL_DMA_IsActiveFlag_TC3(DMA1))
{
LL_DMA_ClearFlag_GI3(DMA1);

LL_DMA_DisableChannel(DMA1,LL_DMA_CHANNEL_3);
LL_DMA_SetDataLength(DMA1,LL_DMA_CHANNEL_3,Sec_UART_MAX_LEN);
LL_DMA_EnableChannel(DMA1,LL_DMA_CHANNEL_3);
}

 

最新文章

  1. CodeForces 455D 分块
  2. 记录centos6.8安装Oracle10.2.0.1过程中的错误解决
  3. 一种另类的解决URL中文乱码问题--对中文进行加密、解密处理
  4. 我也说百度和google
  5. extjs的combobox的用法
  6. el表达式跟ognl表达式的区别(转)
  7. EasyUI-在行内进行表格的增删改操作
  8. js获取当前时间戳与日期比较
  9. Azure Traffic Manager 现可与 Azure 网站集成!
  10. freemarker中的split字符串分割
  11. 更改MySQL密码
  12. ASP.NET Web API 之一 入门篇
  13. Markdown语法说明(转)
  14. php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
  15. 2018-10-27 22:44:33 c language
  16. Java 编程下简介 Class 与类加载
  17. 『Pickle』数据结构持久化模块_常用方法记录
  18. Microsoft Word 2007 向程序发送命令时出现问题解决方法
  19. 再谈获取网站图标Icon
  20. javascript函数中的匿名函数

热门文章

  1. IntelliJ IDEA运行项目的时候提示 Command line is too long 错误
  2. url 获取 值
  3. 淘宝sign算法和使用教程
  4. 学习Typora免费安装步骤
  5. PHP常见方法封装
  6. (面试题) 面试官:如何在forEach的循环里使用break
  7. spring boot No qualifying bean of type 'org.apache.catalina.core.ApplicationContext' available
  8. Mac 如何用python下载Mac OS
  9. 图片在div中居中
  10. mysql误删数据恢复