warning: #223-D: function "CLR_TX_DATA" declared implicitly
解决方法。
以上面错误提示为例:
1 找到定义函数 CLR_TX_DATA() 的源文件 ,这里假设在 a.c 中;
2 在 a.h 中最后声明一下 CLR_TX_DATA(),即添加(假设此函数无返回值无参数)
void CLR_TX_DATA(void);
3 再次编译 刚才的 warning 即可消失。
参考自
KEIl编译STM32的时候,出现了一点问题!!
程序编译的时候通过了!!但是显示警告:
test.c(45): warning: #223-D: function "Get_Temp"declaredimplicitly
在望山查了好久,终于明白:
这是因为Get_Temp没有在你所引用的文件里加载,虽然你在头文件里声明了一遍!!
但是还是有错误,
你只需要在你所使用的文件里面在声明一次,问题迎刃而解!!
另外
在VC中,好像不会有此warning ,它应该是intel编译器特有的警信息:
如果无法为非 void 返回类型的 C 函数找到正确的原型,则"英特尔® C++ 编译器"会打印以下警告消息:
warning #266: function declared implicitly
此问题只会在 C 语言函数中发生。在 C++ 函数中,必须声明正确的原型才能成功编译和链接,所以不会发生上述问题。
如以下C程序
main()
{
printf("okn");
}
就会产生警告
正确的作法是写出函数的定义或#include函数定义的头文件,这样就没问题
关键字:stm32 keilMDK warning
引用地址:
【note】stm32 keilMDK出现warning: function XX declared implicitly
推荐阅读最新更新时间:2024-11-10 16:09
STM32学习之Flash(主存储块、系统存储器和选项字节)详解
说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装 芯片 配置、芯片ID、自举程序等等。当然, FLASH还可以用来装数据。 自己收集了一些资料,现将这些资料总结了一下,不想看的可以直接调到后面看怎么操作就可以了。 FLASH分类 根据用途,STM32片内的FLASH分成两部分:主存储块、信息块。 主存储块用于存储程序,我们写的程序一般存储在这里。 信息块又分成两部分:系统存储器、选项字节。 系统存储器存储用于存放在系统存储器自举模式下的启动程序(BootLoader),当使用ISP方式加载程序时,就是由这个程序执行。这个区域由芯片厂写入BootLoa
[单片机]
STM32-cortex-M4串口调试
按说,串口调试应该是很简单的,可就偏偏困扰了我将近两个周的时间,一筹莫展,接收GPS模块发来的数据一直不对,今天早上通过GPS例程与我编写的简单程序一对比,发现USART3初始化不一致, 例程是uart_init(84,115200);usart3_init(42,38400); 而我的初始化是uart_init(84,115200);usart3_init(84,38400); USART1与USART3,前者挂在APB2总线(高速总线)下,最大时钟是84MHz,后者挂在APB1总线(低速总线)下最大时钟是42MHz。所以usart3_init初始化参数中设置为84是错误的,所以数据接收不正确。 所以时钟在ARM-微控制器
[单片机]
STM32 读写内部Flash
STM32F4Discovery开发帮使用的STM32F407VGT6芯片,内部FLASH有1M之多。平时写的代码,烧写完之后还有大量的剩余。有效利用这剩余的FLASH能存储不少数据。因此研究了一下STM32F4读写内部FLASH的一些操作。 【STM32F4 内部Flash的一些信息】 STM32F407VG的内部FLASH的地址是:0x08000000,大小是0x00100000。 写FLASH的时候,如果发现写入地址的FLASH没有被擦出,数据将不会写入。FLASH的擦除操作,只能按Sector进行。不能单独擦除一个地址上的数据。因此在写数据之前需要将地址所在Sector的所有数据擦除。 在STM32F4的编程手册上可找到F
[单片机]
STM32芯片+8M晶振+32.768Khz晶振的搭配选型参考方案
本文主要讲解STM32系列MCU匹配晶振的推荐选型及注意事项等。 一般来说MCU需要接入一个主频和一个时钟频率,STM32系列也不例外。 其中主频4M、8M、16M、24M、32M和48M居多,一般搭配常用日本大真空KDS、日本电波NDK 8MHZ 晶振;时钟频率即是最常见的32.768KHZ晶振。 如图所示: 一、KDS、NDK 8MHZ的主频晶振 晶振可供选择的范围很广泛,但是随着电子产品小型化越来越成为主流,电路板上提供给各位研发设计人员的空间越来越小,因此对晶振的选择也是以小体积的贴片封装为主。 本文推荐两种品牌极具性价比的8MHZ晶振,3225封装尺寸,这几年主流设计选择产品。 一种是:日本KDS大真空公司推出
[单片机]
stm32学习笔记(十一)LCD显示
#ifndef __LCD_H #define __LCD_H #include sys.h #include stdlib.h ////////////////////////////////////////////////////////////////////////////////// //本程序只供学习使用,未经作者许可,不得用于其它任何用途 //ALIENTEK MiniSTM32F103开发板 //2.4寸/2.8寸/3.5寸/4.3寸/7寸 TFT液晶驱动 //支持驱动IC型号包括:ILI9341/ILI9325/RM68042/RM68021/ILI9320/ILI9328/LGDP4531/
[单片机]
stm32快速学习2——点亮LED
点亮LED 首先使能时钟RCC 然后再设置IO口 下面是用到的函数可在 UM0427 用户手册 固件函数库 中查到,有详尽解释 。 #include stm32f10x.h void RCC_Configuration(void); void GPIO_Configuration(void); int main(void) { RCC_Configuration(); GPIO_Configuration(); GPIO_SetBits(GPIOA, GPIO_Pin_0); GPIO_SetBits(GPIOA, GPIO_Pin_1); while(1); } void RCC_Configuration(v
[单片机]
STM32之软件CRC和硬件CRC速度测试
一、测试条件 硬件: STM32L432KC 主频: 80MHz 编译器: IAR 8.20.1 编译选项: High Speed no size constraints CRC 生成多项式: 0x782f 二、测试方法 软件提前生成CRC表,用于查询。分别使用软件CRC算法和硬件CRC外设对一个缓存进行计算,目的是从该缓存中找到同步头。同步头共11字节,前两个字节为后九个字节的CRC校验值。通过迭代算法依次对11字节进行计算和比较,当找到同步头后返回同步头偏移量。通过时间比较两者之间的速度。 三、测试结果 迭代24464次后,从缓存中找到同步头。 不开启编译时间优化时,软件算法用时23
[单片机]
使用MCU GD32替代STM32的体会
GD32作为国产MCU里的佼佼者,产品线也比较丰富,是替代STM32的一个很好的选择。前段时间有个项目用到GD32的单片机,今天来说说使用的一些体会。 1.硬件我用的单片机型号为GD32F405RGT6,对应STM32F405RGT6。首先,硬件上基本兼容,有一点不同的是GD32的31和47脚为NC,STM32的为VCAP。STM32这两个引脚需要分别连接一个电容到GND,而GD32则不需要。当然,有这两个电容也无所谓,所以,硬件上GD32可以直接替换STM32。 仿真器可以使用Jlink,也可以使用STLink,但是下载程序时会弹框提示,非ST芯片。 2.软件软件上,前期
[单片机]