您好,欢迎进入u8国际电动伸缩门有限公司官网!
u8国际|u8国际官方网站|u8国际网址最新

联系我们

邮箱:youweb@admin.com
电话:@HASHKFK
地址:广东省广州市番禺经济开发区 在线咨询

u8国际常见问题

KEIL2STC单片机(51单片机内核)学习心得U8国际- U8国际官方网站- 体育APP下载

发布日期:2025-05-29 15:14 浏览次数:

  u8,u8国际,u8国际官方网站,u8国际网站,u8国际网址,u8国际链接,u8体育,u8体育官网,u8体育网址,u8注册,u8体育网址,u8官方网站,u8体育APP,u8体育登录,u8体育入口

KEIL2STC单片机(51单片机内核)学习心得U8国际- U8国际官方网站- U8体育APP下载

  Error:Multiplepublicdefinitions,symbol:(某个全局变量)。这个错误是说一个全局变量多重定义了。对于经验不足的同学们来说,以下例子可能是比较难以找到原因的问题。比如,我有2个.C文件(a1.c,a2.c),有一个.h文件(a1.h),然后在这个.h文件中(a1.h)定义一个变量:Unsigned char a;然后在a1.c中调用a1.h文件,可以正常运行;但是a1.c和a2.c中同时调用a1.h文件就会出现以上错误(基本所有编译器都一样)。是因为编译器在编译的时候,编译A1.C发现定义了char a,在编译a2.c的时候又发现定义了一次char a。良好的编程习惯是不要在.H文件中定义变量,在大工程中头文件用得比较多的情况下尤为重要。可以在.H中声明如:#define a 10,extern u8 a;

  Uncalledsegment:ignoredfor overlayprocess,segment:(某个函数)这是一个警告,看起来是没什么作用的,但是对于51微弱的FLASH,这些warn是很重要的。这个警告是说某个函数没用到。这个函数不仅占空间,并且他所附带的变量也会占空间的。Keil2编译生产执行文件.hex文件时,这些没用到的代码(当然你的注释不会编译进去)也会编译到执行文件中,使得执行文件会偏大。

  对于51单片机,时钟速度比较低,并且执行周期比较长(假设12个时钟周期,如果是浮点数计算,执行时间更长),因此尽量少用中断实现功能。比如ADC采集,如果我们用中断来做的话,假定设置ADC采样周期为840个时钟周期,里面的语句有20条,这样使得每840个周期都会出现一个中断,并且每次中断要浪费240个周期来ADC处理,这样会是单片机运行主程序的速度减低30%,如果在加上其他的中断,那就不得了了,MCU估计就跑不动主程序了。

联系方式

全国服务热线

@HASHKFK

手 机:@HASHKFK

地 址:广东省广州市番禺经济开发区

扫一扫,加微信

Copyright © 2002-2024 u8国际电动伸缩门有限公司 版权所有 非商用版本 备案号: