当前位置: 首页 > news >正文

创建网站的目的怎么创建网站教程

创建网站的目的,怎么创建网站教程,南昌建设工程质量监督网站,乌鲁木齐网站建设求职简历目录 一、配置串口打印(参考串口打印的文章) 二、CUBE_MX配置 三、KEIL5配置 1.打开dma.c文件(默认初始化DMA中断函数) 2.打开usart.c文件 3.打开main.c文件(储存器发送数据到外设串口) 4.打开main.c…

目录

一、配置串口打印(参考串口打印的文章)

二、CUBE_MX配置

三、KEIL5配置

1.打开dma.c文件(默认初始化DMA中断函数)

2.打开usart.c文件

3.打开main.c文件(储存器发送数据到外设串口)

4.打开main.c文件(外设串口将数据写入储存器)


一、配置串口打印(参考串口打印的文章)

二、CUBE_MX配置

1.选择USART1串口,配置为异步发送

2.在DMA Setting中add

   USART1_RX(串口到储存器)

   USART1_TX(存储器到串口)

3.配置优先级、传输数据的大小

4.生成代码

三、KEIL5配置

1.打开dma.c文件(默认初始化DMA中断函数)

void MX_DMA_Init(void)
{/* DMA controller clock enable */__HAL_RCC_DMA1_CLK_ENABLE();/* DMA interrupt init *//* DMA1_Channel4_IRQn interrupt configuration */HAL_NVIC_SetPriority(DMA1_Channel4_IRQn, 0, 0);HAL_NVIC_EnableIRQ(DMA1_Channel4_IRQn);/* DMA1_Channel5_IRQn interrupt configuration */HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);}

2.打开usart.c文件

定义了句柄结构体

UART_HandleTypeDef huart1;
DMA_HandleTypeDef hdma_usart1_tx;
DMA_HandleTypeDef hdma_usart1_rx;

串口参数配置

void MX_USART1_UART_Init(void)
{/* USER CODE BEGIN USART1_Init 0 *//* USER CODE END USART1_Init 0 *//* USER CODE BEGIN USART1_Init 1 *//* USER CODE END USART1_Init 1 */huart1.Instance = USART1;huart1.Init.BaudRate = 115200;huart1.Init.WordLength = UART_WORDLENGTH_8B;huart1.Init.StopBits = UART_STOPBITS_1;huart1.Init.Parity = UART_PARITY_NONE;huart1.Init.Mode = UART_MODE_TX_RX;huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;huart1.Init.OverSampling = UART_OVERSAMPLING_16;if (HAL_UART_Init(&huart1) != HAL_OK){Error_Handler();}/* USER CODE BEGIN USART1_Init 2 *//* USER CODE END USART1_Init 2 */}

要手动增补初始化函数(不要忘记了)

HAL_UART_Init(&huart1);

上述代码配置了串口的传输速度和模式(可以通过软件配置),如图:

  初始化  USART1_RX(串口到储存器)、 USART1_TX(存储器到串口)

void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
{GPIO_InitTypeDef GPIO_InitStruct = {0};if(uartHandle->Instance==USART1){/* USER CODE BEGIN USART1_MspInit 0 *//* USER CODE END USART1_MspInit 0 *//* USART1 clock enable */__HAL_RCC_USART1_CLK_ENABLE();__HAL_RCC_GPIOA_CLK_ENABLE();/**USART1 GPIO ConfigurationPA9     ------> USART1_TXPA10     ------> USART1_RX*/GPIO_InitStruct.Pin = GPIO_PIN_9;GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);GPIO_InitStruct.Pin = GPIO_PIN_10;GPIO_InitStruct.Mode = GPIO_MODE_INPUT;GPIO_InitStruct.Pull = GPIO_NOPULL;HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);/* USART1 DMA Init *//* USART1_RX Init */hdma_usart1_rx.Instance = DMA1_Channel5;hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;hdma_usart1_rx.Init.PeriphInc = DMA_PINC_DISABLE;hdma_usart1_rx.Init.MemInc = DMA_MINC_ENABLE;hdma_usart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;hdma_usart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;hdma_usart1_rx.Init.Mode = DMA_NORMAL;hdma_usart1_rx.Init.Priority = DMA_PRIORITY_LOW;if (HAL_DMA_Init(&hdma_usart1_rx) != HAL_OK){Error_Handler();}__HAL_LINKDMA(uartHandle,hdmarx,hdma_usart1_rx);/* USART1_TX Init */hdma_usart1_tx.Instance = DMA1_Channel4;hdma_usart1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;hdma_usart1_tx.Init.PeriphInc = DMA_PINC_DISABLE;hdma_usart1_tx.Init.MemInc = DMA_MINC_ENABLE;hdma_usart1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;hdma_usart1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;hdma_usart1_tx.Init.Mode = DMA_NORMAL;hdma_usart1_tx.Init.Priority = DMA_PRIORITY_LOW;if (HAL_DMA_Init(&hdma_usart1_tx) != HAL_OK){Error_Handler();}__HAL_LINKDMA(uartHandle,hdmatx,hdma_usart1_tx);/* USER CODE BEGIN USART1_MspInit 1 *//* USER CODE END USART1_MspInit 1 */}
}

要手动增补初始化函数(不要忘记了)

HAL_DMA_Init(&hdma_usart1_tx);
HAL_DMA_Init(&hdma_usart1_rx);


3.打开main.c文件(储存器发送数据到外设串口)

1.定义存储器1

#define SENDBUFF_SIZE  13
uint8_t SendBuff[SENDBUFF_SIZE];//储存器(给外设串口发送数据)

2.在主结构体存储数据

HAL_UART_Transmit_DMA函数中,储存器中只能使用     ‘’   (单个字符)

	  int i;for(i=0;i<SENDBUFF_SIZE;i=i+13){SendBuff[i]	 = 'M';SendBuff[i+1]	 = 'L';SendBuff[i+2]	 = 'S';SendBuff[i+3]	 = ' ';SendBuff[i+4]	 = 'L';SendBuff[i+5]	 = 'O';SendBuff[i+6]	 = 'V';SendBuff[i+7]	 = 'E';SendBuff[i+8]	 = ' ';SendBuff[i+9]	 = 'M';SendBuff[i+10] = 'X';SendBuff[i+11] = ' '; }	

3.配置串口打印(参考另一篇文章)

4.在main结构体中调用函数

HAL_UART_Transmit_DMA(&huart1, (uint8_t *)SendBuff ,SENDBUFF_SIZE);
//三个参数 1.USART句柄结构体 2.要发送数据的存储器 3.数据大小

5.打开串口调试助手

4.打开main.c文件(外设串口将数据写入储存器)

1.定义储存器2

#define SENDBUFF_SIZE  13
uint8_t ReceiveBuff[SENDBUFF_SIZE];

2.配置串口打印

3.在main结构体中调用函数

	HAL_UART_Receive_DMA(&huart1,(uint8_t *)ReceiveBuff,SENDBUFF_SIZE); 
//三个参数  1.串口的句柄结构体  2.要接收串口数据的存储器  3.数据大小

4.再调用函数把存储的数据再发送到串口中

HAL_UART_Transmit_DMA(&huart1, (uint8_t *)ReceiveBuff,SENDBUFF_SIZE);

5.打开串口助手,发送数据999,并回显

http://www.ritt.cn/news/18071.html

相关文章:

  • 网站建设未完成阿里巴巴国际贸易网站
  • 中企动力网站建设 医疗b2b电子商务平台
  • 做网站网页排版错误每日英语新闻
  • 网站策划方法佛山seo培训
  • 网站制作公司一站式服务seo一个关键词多少钱
  • 如何简述网站建设流程搜索引擎优化培训中心
  • 外贸营销信天津关键词优化网排名
  • 短租网站开发郑州网络推广厂家
  • 网站里做任务怎样才能在百度上发布信息
  • 网站首页flash模板青岛seo整站优化哪家专业
  • 签约网站做PPT郑州企业网络推广外包
  • 东莞设计公司有哪些湖南seo技术培训
  • 深圳电子商务网站制作东莞百度seo推广公司
  • 国外创意网站欣赏怎么申请域名建网站
  • asp.net 开发的网站游戏app拉新平台
  • 南昌市会做网站有哪几家站长工具推荐网站
  • 长春广告公司网站建设2021十大网络舆情案例
  • 做网站运营很累吧湖南关键词优化品牌价格
  • 国内做的比较好的网站重庆seo网站管理
  • 阿里云备案网站 网站名称怎么写长沙百度开户
  • 青岛做网站企业软件开发网站
  • c2c网站架构新闻发布平台
  • 长沙谷歌优化南京seo公司哪家
  • 东莞什么平台好做优化步骤
  • 网站结构怎么做百度广告点击软件
  • 商务网站的建设有哪几个步骤企业网站建设论文
  • 怎么避免网站开发后门建立网站费用大概需要多少钱
  • 四川省城乡住房与建设厅网站首页百度app最新版本
  • 外贸接单平台appseo站长网怎么下载
  • 如何建设网站首页杭州seo公司