历史上的今天
今天是:2025年03月05日(星期三)
2020年03月05日 | STM32开发笔记95: 处理UNUSED宏
2020-03-05 来源:eefocus
单片机型号:STM32F091RCT6
使用C语音在PlatformIO中进行STM32Cube的工程设计,一切正常,希望使用C++语音进行程序开发,顾将main.c文件改为main.cpp文件,再次编译报如下警告:
In file included from C:userssnmplink.platformiopackagesframework-stm32cubef0DriversSTM32F0xx_HAL_DriverInc/stm32f0xx_hal_rcc.h:45:0,
from C:userssnmplink.platformiopackagesframework-stm32cubef0DriversSTM32F0xx_HAL_DriverInc/stm32f0xx_hal_conf.h:185,
from C:userssnmplink.platformiopackagesframework-stm32cubef0DriversSTM32F0xx_HAL_DriverInc/stm32f0xx_hal.h:46,
from include/main.h:31,
from src5_LogicLayermain.cpp:22:
src5_LogicLayermain.cpp: In function 'void MX_GPIO_Init()':
C:userssnmplink.platformiopackagesframework-stm32cubef0DriversSTM32F0xx_HAL_DriverInc/stm32f0xx_hal_rcc.h:664:48: warning: conversion to void will not access object of type 'volatile uint32_t {aka volatile long unsigned int}'
UNUSED(tmpreg);
C:userssnmplink.platformiopackagesframework-stm32cubef0DriversSTM32F0xx_HAL_DriverInc/stm32f0xx_hal_def.h:87:27: note: in definition of macro 'UNUSED'
#define UNUSED(x) ((void)(x))
^
src5_LogicLayermain.cpp:166:3: note: in expansion of macro '__HAL_RCC_GPIOF_CLK_ENABLE'
__HAL_RCC_GPIOF_CLK_ENABLE();
^~~~~~~~~~~~~~~~~~~~~~~~~~
C:userssnmplink.platformiopackagesframework-stm32cubef0DriversSTM32F0xx_HAL_DriverInc/stm32f0xx_hal_rcc.h:650:48: warning: conversion to void will not access object of type 'volatile uint32_t {aka volatile long unsigned int}'
UNUSED(tmpreg);
C:userssnmplink.platformiopackagesframework-stm32cubef0DriversSTM32F0xx_HAL_DriverInc/stm32f0xx_hal_def.h:87:27: note: in definition of macro 'UNUSED'
#define UNUSED(x) ((void)(x))
^
src5_LogicLayermain.cpp:167:3: note: in expansion of macro '__HAL_RCC_GPIOB_CLK_ENABLE'
__HAL_RCC_GPIOB_CLK_ENABLE();
^~~~~~~~~~~~~~~~~~~~~~~~~~
C:userssnmplink.platformiopackagesframework-stm32cubef0DriversSTM32F0xx_HAL_DriverInc/stm32f0xx_hal_rcc.h:643:48: warning: conversion to void will not access object of type 'volatile uint32_t {aka volatile long unsigned int}'
UNUSED(tmpreg);
C:userssnmplink.platformiopackagesframework-stm32cubef0DriversSTM32F0xx_HAL_DriverInc/stm32f0xx_hal_def.h:87:27: note: in definition of macro 'UNUSED'
#define UNUSED(x) ((void)(x))
^
src5_LogicLayermain.cpp:168:3: note: in expansion of macro '__HAL_RCC_GPIOA_CLK_ENABLE'
__HAL_RCC_GPIOA_CLK_ENABLE();
警告的内容较多,可以一级级分析,最后可将警告语句定位在下列文件:
C:userssnmplink.platformiopackagesframework-stm32cubef0DriversSTM32F0xx_HAL_DriverInc/stm32f0xx_hal_rcc.h:664:48
代码如下:
#define __HAL_RCC_GPIOA_CLK_ENABLE() do {
__IO uint32_t tmpreg;
SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOAEN);
/* Delay after an RCC peripheral clock enabling */
tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOAEN);
UNUSED(tmpreg);
} while(0U)
#define __HAL_RCC_GPIOB_CLK_ENABLE() do {
__IO uint32_t tmpreg;
SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOBEN);
/* Delay after an RCC peripheral clock enabling */
tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOBEN);
UNUSED(tmpreg);
} while(0U)
#define __HAL_RCC_GPIOC_CLK_ENABLE() do {
__IO uint32_t tmpreg;
SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOCEN);
/* Delay after an RCC peripheral clock enabling */
tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOCEN);
UNUSED(tmpreg);
} while(0U)
#define __HAL_RCC_GPIOF_CLK_ENABLE() do {
__IO uint32_t tmpreg;
SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOFEN);
/* Delay after an RCC peripheral clock enabling */
tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOFEN);
UNUSED(tmpreg);
} while(0U)
#define __HAL_RCC_CRC_CLK_ENABLE() do {
__IO uint32_t tmpreg;
SET_BIT(RCC->AHBENR, RCC_AHBENR_CRCEN);
/* Delay after an RCC peripheral clock enabling */
tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_CRCEN);
UNUSED(tmpreg);
} while(0U)
#define __HAL_RCC_DMA1_CLK_ENABLE() do {
__IO uint32_t tmpreg;
SET_BIT(RCC->AHBENR, RCC_AHBENR_DMA1EN);
/* Delay after an RCC peripheral clock enabling */
tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_DMA1EN);
UNUSED(tmpreg);
} while(0U)
史海拾趣
|
一、引言 过去工业控制计算机系统的软件功能都靠软件人员编程实现。工作量大,软件通用性差,且易产生错误。随着工业控制要求的不断提高,专门用于工业控制的组态软件应运而生,它是一套功能齐全的组态生成工具软件,通用性强,而 ...… 查看全部问答> |
|
_irqHandler PROC 1. STMFD sp!,{r0-r4,r12,lr} 2. mov r4,#0x80000000 //中断控制寄存器首地址(假设的) 3. ldr r0,[r4,#0] ...… 查看全部问答> |
|
最近在做sd卡驱动的移植,读手册时有几个参数看不明白。比如,我板子的sd卡控制器寄存器有两个位可以设置sd卡dma的类型,原文如下: DMA type: It indicates which DMA transaction type is used. These 2 bits are valid when the DMA_EN is e ...… 查看全部问答> |
|
请问: wince中的文件夹有没有后缀名? 我想把一个名为NandFlash的文件夹,放到桌面快捷方式, 我在WINCE500\\PLATFORM\\SMDK2440\\FILES创建了一个NandFlash.LNK文件,里面写上22#\\windows\\NandFlash 我又在Project.bib 里面加上 NandFlash ...… 查看全部问答> |
|
首先我的程序在某些主板上是可以正常工作的(具体型号我也搞不懂),设置的是从设备,内部只有从设备状态机。没有接入奇偶检验,仲裁和热插拔。 问题是在一些主板上发现设置为从设备时无法找到设备,设置为主设备可以找到,但是通过软件读取配置信 ...… 查看全部问答> |
|
RAW_TASK.C具体教学问题1 raw_task_create教学问题: 1 代码是怎么实现系统只能创建一个 idle 任务的? 2 RAW_TASK_OBJ 结构体第一个成员task_stack 的地址等于结构体的地址吗? 3 RAW_TASK_OBJ 结构体成员中task_stack 为什么是放在第 ...… 查看全部问答> |
|
最近申请了一个省创项目,关于无线通信的战术动作命令腕表,不知带怎么开始,望大... 二、项目研究背景(可以是已有的基础,与本项目有关的研究积累和已取得的成绩,已具备的条件,尚缺少的条件及方法等) 随着社会的发展,人们身边的不安全因素越来越多。当人们处于特殊紧急环境,并且需要及时对威胁自己或他人的生命安 ...… 查看全部问答> |




