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

怎么做电影网站销售加app安卓下载官网

怎么做电影网站,销售加app安卓下载官网,潍坊市住房和城乡建设局网站下载,wordpress前台评论显示英文目录 1、新建板级支持包 2、修改main.c 3、程序流程 4、问题 新建工程的基本操作步骤参考这里: 【【野火】STM32 HAL库开发实战指南 教学视频 手把手教学STM32全系列 零基础入门CubeMXHAL库,基于野火全系列STM32开发板】 https://www.bilibili.com/…

目录

1、新建板级支持包

2、修改main.c

3、程序流程

4、问题


新建工程的基本操作步骤参考这里:

【【野火】STM32 HAL库开发实战指南 教学视频 手把手教学STM32全系列 零基础入门CubeMX+HAL库,基于野火全系列STM32开发板】 https://www.bilibili.com/video/BV18X4y1M763/?p=37&share_source=copy_web&vd_source=6bf2ecf2bed1f4e4ccbce142a48bb318


1、新建板级支持包

LED的板级支持包直接移植,DMA外设就不新建板级支持包了,直接使用生成的代码。

dma.c

/* USER CODE BEGIN Header */
/********************************************************************************* @file    dma.c* @brief   This file provides code for the configuration*          of all the requested memory to memory DMA transfers.******************************************************************************* @attention** Copyright (c) 2025 STMicroelectronics.* All rights reserved.** This software is licensed under terms that can be found in the LICENSE file* in the root directory of this software component.* If no LICENSE file comes with this software, it is provided AS-IS.********************************************************************************/
/* USER CODE END Header *//* Includes ------------------------------------------------------------------*/
#include "dma.h"/* USER CODE BEGIN 0 *//* USER CODE END 0 *//*----------------------------------------------------------------------------*/
/* Configure DMA                                                              */
/*----------------------------------------------------------------------------*//* USER CODE BEGIN 1 *//* USER CODE END 1 */
DMA_HandleTypeDef hdma_memtomem_dma1_channel1;/*** Enable DMA controller clock* Configure DMA for memory to memory transfers*   hdma_memtomem_dma1_channel1*/
void MX_DMA_Init(void)
{/* DMA controller clock enable */__HAL_RCC_DMA1_CLK_ENABLE();/* Configure DMA request hdma_memtomem_dma1_channel1 on DMA1_Channel1 */hdma_memtomem_dma1_channel1.Instance = DMA1_Channel1;hdma_memtomem_dma1_channel1.Init.Direction = DMA_MEMORY_TO_MEMORY;hdma_memtomem_dma1_channel1.Init.PeriphInc = DMA_PINC_ENABLE;hdma_memtomem_dma1_channel1.Init.MemInc = DMA_MINC_ENABLE;hdma_memtomem_dma1_channel1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;hdma_memtomem_dma1_channel1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;hdma_memtomem_dma1_channel1.Init.Mode = DMA_NORMAL;hdma_memtomem_dma1_channel1.Init.Priority = DMA_PRIORITY_MEDIUM;if (HAL_DMA_Init(&hdma_memtomem_dma1_channel1) != HAL_OK){Error_Handler();}}/* USER CODE BEGIN 2 *//* USER CODE END 2 */

dma.h

/* USER CODE BEGIN Header */
/********************************************************************************* @file    dma.h* @brief   This file contains all the function prototypes for*          the dma.c file******************************************************************************* @attention** Copyright (c) 2025 STMicroelectronics.* All rights reserved.** This software is licensed under terms that can be found in the LICENSE file* in the root directory of this software component.* If no LICENSE file comes with this software, it is provided AS-IS.********************************************************************************/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __DMA_H__
#define __DMA_H__#ifdef __cplusplus
extern "C" {
#endif/* Includes ------------------------------------------------------------------*/
#include "main.h"/* DMA memory to memory transfer handles -------------------------------------*/
extern DMA_HandleTypeDef hdma_memtomem_dma1_channel1;/* USER CODE BEGIN Includes *//* USER CODE END Includes *//* USER CODE BEGIN Private defines *//* USER CODE END Private defines */void MX_DMA_Init(void);/* USER CODE BEGIN Prototypes *//* USER CODE END Prototypes */#ifdef __cplusplus
}
#endif#endif /* __DMA_H__ */

2、修改main.c

1、添加LED外设驱动头文件

2、定义aSRC_Const_Buffer数组作为DMA传输数据源, 定义DMA传输目标存储器aDST_Buffer

3、定义简单延时函数Delay和比较函数Buffercmp

/* USER CODE BEGIN Header */
/********************************************************************************* @file           : main.c* @brief          : Main program body******************************************************************************* @attention** Copyright (c) 2025 STMicroelectronics.* All rights reserved.** This software is licensed under terms that can be found in the LICENSE file* in the root directory of this software component.* If no LICENSE file comes with this software, it is provided AS-IS.********************************************************************************/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "dma.h"
#include "gpio.h"/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "stm32f1xx.h"
#include "./led/bsp_led.h"/* USER CODE END Includes *//* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */
#define BUFFER_SIZE              32/* 定义aSRC_Const_Buffer数组作为DMA传输数据源const关键字将aSRC_Const_Buffer数组变量定义为常量类型 */
const uint32_t aSRC_Const_Buffer[BUFFER_SIZE]= {0x01020304,0x05060708,0x090A0B0C,0x0D0E0F10,0x11121314,0x15161718,0x191A1B1C,0x1D1E1F20,0x21222324,0x25262728,0x292A2B2C,0x2D2E2F30,0x31323334,0x35363738,0x393A3B3C,0x3D3E3F40,0x41424344,0x45464748,0x494A4B4C,0x4D4E4F50,0x51525354,0x55565758,0x595A5B5C,0x5D5E5F60,0x61626364,0x65666768,0x696A6B6C,0x6D6E6F70,0x71727374,0x75767778,0x797A7B7C,0x7D7E7F80};/* 定义DMA传输目标存储器 */
uint32_t aDST_Buffer[BUFFER_SIZE];static void Delay(__IO uint32_t nCount);
uint8_t Buffercmp(const uint32_t* pBuffer, uint32_t* pBuffer1, uint16_t BufferLength); /* USER CODE END PTD *//* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD *//* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM *//* USER CODE END PM *//* Private variables ---------------------------------------------------------*//* USER CODE BEGIN PV *//* USER CODE END PV *//* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
/* USER CODE BEGIN PFP *//* USER CODE END PFP *//* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 *//* USER CODE END 0 *//*** @brief  The application entry point.* @retval int*/
int main(void)
{/* USER CODE BEGIN 1 *//* 定义存放比较结果变量 */uint8_t TransferStatus;/* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* LED 端口初始化 */LED_GPIO_Config(); /* 设置 RGB 彩色灯为紫色 */LED_PURPLE;/* 简单延时函数 */Delay(0xFFFFFF);/* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_DMA_Init();/* USER CODE BEGIN 2 */HAL_DMA_Start(&hdma_memtomem_dma1_channel1,(uint32_t)aSRC_Const_Buffer,(uint32_t)aDST_Buffer,BUFFER_SIZE);/* 等待DMA传输完成 */while(__HAL_DMA_GET_FLAG(&hdma_memtomem_dma1_channel1,DMA_FLAG_TC1)==RESET){}   /* 比较源数据与传输后数据 */TransferStatus=Buffercmp(aSRC_Const_Buffer, aDST_Buffer, BUFFER_SIZE);/* 判断源数据与传输后数据比较结果*/if(TransferStatus==0)  {/* 源数据与传输后数据不相等时RGB彩色灯显示红色 */LED_RED;}else{ /* 源数据与传输后数据相等时RGB彩色灯显示蓝色 */LED_BLUE;}/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}/* 简单的延时函数 */
static void Delay(__IO uint32_t nCount)
{for(; nCount != 0; nCount--);
}
/*** 判断指定长度的两个数据源是否完全相等,* 如果完全相等返回1,只要其中一对数据不相等返回0*/
uint8_t Buffercmp(const uint32_t* pBuffer, uint32_t* pBuffer1, uint16_t BufferLength)
{/* 数据长度递减 */while(BufferLength--){/* 判断两个数据源是否对应相等 */if(*pBuffer != *pBuffer1){/* 对应数据源不相等马上退出函数,并返回0 */return 0;}/* 递增两个数据源的地址指针 */pBuffer++;pBuffer1++;}/* 完成判断并且对应数据相等 */return 1;  
}
/*** @brief System Clock Configuration* @retval None*/
void SystemClock_Config(void)
{RCC_OscInitTypeDef RCC_OscInitStruct = {0};RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};/** Initializes the RCC Oscillators according to the specified parameters* in the RCC_OscInitTypeDef structure.*/RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;RCC_OscInitStruct.HSEState = RCC_HSE_ON;RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;RCC_OscInitStruct.HSIState = RCC_HSI_ON;RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK){Error_Handler();}/** Initializes the CPU, AHB and APB buses clocks*/RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK){Error_Handler();}
}/* USER CODE BEGIN 4 *//* USER CODE END 4 *//*** @brief  This function is executed in case of error occurrence.* @retval None*/
void Error_Handler(void)
{/* USER CODE BEGIN Error_Handler_Debug *//* User can add his own implementation to report the HAL error return state */__disable_irq();while (1){}/* USER CODE END Error_Handler_Debug */
}#ifdef  USE_FULL_ASSERT
/*** @brief  Reports the name of the source file and the source line number*         where the assert_param error has occurred.* @param  file: pointer to the source file name* @param  line: assert_param error line source number* @retval None*/
void assert_failed(uint8_t *file, uint32_t line)
{/* USER CODE BEGIN 6 *//* User can add his own implementation to report the file name and line number,ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) *//* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */

3、程序流程

1、定义存放比较结果的变量

2、HAL库初始化,系统时钟初始化,LED端口初始化、设置LED为紫色,DMA初始化

3、开启DMA传输

4、等待DMA传输完成后,比较原数据与传输后的数据,如果不相同显示红色,否则蓝色。

4、问题

1、移植野火的代码到main.c文件时要注意将DMA句柄结构体实例化对象名称修改为自动生成的名称hdma_memtomem_dma1_channel1。

2、在配置DMA外设时注意

  /* Configure DMA request hdma_memtomem_dma1_channel1 on DMA1_Channel1 */hdma_memtomem_dma1_channel1.Instance = DMA1_Channel1;hdma_memtomem_dma1_channel1.Init.Direction = DMA_MEMORY_TO_MEMORY;hdma_memtomem_dma1_channel1.Init.PeriphInc = DMA_PINC_ENABLE;hdma_memtomem_dma1_channel1.Init.MemInc = DMA_MINC_ENABLE;hdma_memtomem_dma1_channel1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;hdma_memtomem_dma1_channel1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;hdma_memtomem_dma1_channel1.Init.Mode = DMA_NORMAL;hdma_memtomem_dma1_channel1.Init.Priority = DMA_PRIORITY_MEDIUM;

3、    要调用库函数开启DMA传输

	HAL_DMA_Start(&hdma_memtomem_dma1_channel1,(uint32_t)aSRC_Const_Buffer,(uint32_t)aDST_Buffer,BUFFER_SIZE);

4、  

	/* 等待DMA传输完成 */while(__HAL_DMA_GET_FLAG(&hdma_memtomem_dma1_channel1,DMA_FLAG_TC1)==RESET){}   

中的DMA_FLAG_TC1要改为这个。


文章转载自:

http://QZciCOL9.wchsx.cn
http://BFhNj4Ef.wchsx.cn
http://7D9aYoFe.wchsx.cn
http://IKz3w9tV.wchsx.cn
http://SrxHSMFX.wchsx.cn
http://q0nc9mw8.wchsx.cn
http://tP31xBr6.wchsx.cn
http://APgiv4Lq.wchsx.cn
http://6otP8EDo.wchsx.cn
http://voaTVhSz.wchsx.cn
http://nxwlgmd6.wchsx.cn
http://Gs3cMfvZ.wchsx.cn
http://1445RHhJ.wchsx.cn
http://OF2fIXPH.wchsx.cn
http://dRMntDj9.wchsx.cn
http://mvhCM38d.wchsx.cn
http://pBA1CnpK.wchsx.cn
http://GIBpKw4j.wchsx.cn
http://BzDWRZE8.wchsx.cn
http://DIxt3DS2.wchsx.cn
http://vDYQeXcr.wchsx.cn
http://U23B1YX7.wchsx.cn
http://WqheLHmq.wchsx.cn
http://az9vz87W.wchsx.cn
http://sLbjDfhN.wchsx.cn
http://jsaAvihX.wchsx.cn
http://PWHTCCc4.wchsx.cn
http://7qtZK0hJ.wchsx.cn
http://oQgXZJAh.wchsx.cn
http://hoxqkI4Z.wchsx.cn
http://www.dtcms.com/wzjs/741103.html

相关文章:

  • 网站 建设运行情况网站开发技术背景介绍
  • 泰州网站制作公司如何建设网站后台
  • 微信长图的免费模板网站关键词搜索引擎优化推广
  • 南京市住宅建设总公司网站昆明 网站建设兼职
  • 六安商务网站建设电话苏州的网络企业
  • 个人备案的网站能做盈利吗榆次网站建设公司
  • 大连做网站哪家服务好自我介绍网页制作模板
  • 通州网站建设电话湛江网站建设托管
  • 中国银行网站建设wordpress搜索条件
  • 建设大型的企业网站费用网站子站怎么做
  • 北京制作网站公司哪家好如何做超一个电子商务网站
  • 陕西省建设厅申报网站信金在线制作网站
  • 成都网站注册wordpress 空白
  • 宝安做网站怎么样网站备案最快
  • 网站与经营网站微信推广方式有哪些
  • 商业设计网站有哪些做网站云服务器还是云虚拟主机
  • asp.net不适合做网站网页调用 wordpress 图片编辑器
  • wordpress 增加子目录合肥seo优化外包公司
  • 北京网站建设品牌免费网站模板
  • 建设网站需要了解些什么东西哪个网站可以做简历
  • 保定手机网站建设wordpress前端登录页面
  • 做网站济南西网站后台开发技术
  • 衡水哪儿做wap网站比较好的做网站的公司
  • 怎么样建设自己网站淄博营销网站建设服务
  • 北京市朝阳区住房建设网站微信_网站提成方案点做
  • 网站制作完成之后wordpress笑话类模板
  • 做网站前端网址可以自己写吗企业微信和个人微信的区别
  • 惠州网站建设企业服装设计专业有前途吗
  • 淘宝客网站开发平台潍坊模板建站定制
  • 徐州网站建设xlec徐州网站建设的特点