访问电脑版页面

导航:老古开发网手机版单片机STM8S单片机

STM8S程序常见错误解决方案

导读:
关键字:
STM8S,IAR,

一、IAR中的重复定义问题

在自己写头文件时,要记得将常量定义在.c文件中,如果将常量定义在.h文件中,当在main.c或者其他地方包含该头文件时,会将头文件中的常量定义包含到main.c中,同时,相应的.c文件也有该常量定义语句,就会导致linker报错,有xxxx重定义(redefined)。此外,当要在main.c中使用其他.c文件中定义的量时,要记得+ extern+ +。

标准的做法:在.h文件中声明变量,在一个.c文件中定义变量,其它.c文件要用到变量只要包含.h头文件,相当于变量声明,就可以引用其它.c文件中定义的变量了。一般只在头文件中声明变量,在原文件中定义变量,即使你在头文件中使用了预编译指令 #ifndef…。 #define … #endif,也不能在头文件中定义变量。不能定义,必须声明。

STM8S程序常见错误解决方案

二、程序溢出问题(Error[Lp011]问题)

Error[Lp011]: secTIon placement failed: unable to allocate space for secTIons/blocks with a total esTImated minimum size of 0x2ba9 bytes in

原因:将library改为由full改为normal,一下子空间减少很多,还有printf和scanf的格式都由full改为small,不过这里不能用printf了。

(total uncommitted space 0x1f80)。

11 971 bytes of readonly code memory

915 bytes of readonly data memory

726 bytes of readwrite data memory

Errors: 1

CPU:STM8S103F3P,它有8K FLASH[0x008000-0x009fff],有1K RAM,实际提示的FLASH大小为10582+809》8192

[0x008000-0x009fff]=8192,0x1f80=8064

0x3180=12672, 0x1f80=8064, 11971+915=12886

8s207就没有问题,换成103问题就溢出。

相关讨论:

三、 Error[Pe169]: expected a declaraTIon

答:多了}右大括号。

四、PL2303上电后鼠标乱动的解决办法:

1,重新上电,因为我们开发板带了一键下载电路,所以第一次上电,会引起几次(3~6次)MCU复位,很正常。 你不要每次都按电源键来实现复位,就不存在这个问题了。

2,因为你的例程,一上电,就通过串口输出数据了,而此时CH340还在和电脑通信,CH340在和电脑USB连接建立的时候,收到数据,就可能导致你的串口不被识别为串口,而被识别为什么ball之类的设备,从而鼠标乱飞。

解决办法:

上电之前,先按住MCU的复位,然后再上电。等10秒钟左右,再释放复位。就一切OK了.

来源:网络整理   作者:工程师飞燕  2018/6/7 8:40:00
栏目: [ STM8S单片机]

相关阅读

如何在STM8S单片机上实现一键式的开关机功能

STM8S的通用异步收发器UART的原理解析

STM8S单片机开发的过程及方法

STM8S单片机外部中断唤醒

STM8S的GPIO主要功能以及操作方法解析

stm8s开发(六) EXIT的使用:做一个外部中断的按钮!

STM8SF103单片机的ADC采样电压设计

如何利用STM8S单片机实现一键式的开关机功能

STM8S单片机通过蓝牙与智能手机实现串口通讯的设计

STM8s(3) GPIO引脚功能设置

STM8S_001_GPIO基础知识

STM8S系列单片机是如何控制机器人的

STM8S电源管理-重点活跃停机模式

stm8s的UBC参数问题

基于stm8s103k3单片机串口UART的正确使用分享

STM8S 与 STM32F IO口输出速率测试

意法半导体(ST)的STM8S系列微控制器为工业应用提供先进的8位内核和可伸缩的设计平台

STM8S PWM输出停止后 IO口电平输出

STM8S程序常见错误解决方案

STM8S_002_TIM精确延时(阻塞式)