STM8S003F3这款小型MCU,只有1K RAM与8K Flash,应用比较简单,AD采样,GPIO控制,PWM控制,还是不错的嵌入式的应用。
最近一个项目用到了几路AD采样,我平时一般喜欢下载最新的官方标准固件库,只是,这次遇到的问题是,在使用PWM与ADC采样后,代码大小竟然大于8K,编译失败!!!后来,看了下Debug下的map文件,发现,使用ADC的固件库,大小竟然有1K的代码空间。后来改为寄存器的,发现代码还不到100字节。
(1)固件库AD采样的代码如下,代码易懂,但编译后代码较大:单通道采样,多个的话,只需要一个一个采集。
#include "adc.h"
#include "stm8s.h"
void InitAD(uint8_t channel)
{
/* De-Init ADC peripheral*/
ADC1_DeInit();
//通道初始化
ADC1_Init(ADC1_CONVERSIONMODE_SINGLE,
(ADC1_Channel_TypeDef)channel,
ADC1_PRESSEL_FCPU_