关于STM8S003微控制器的模数转换器(ADC)模块,以下是关键信息及使用方法:
核心特性
-
ADC类型
- 10位分辨率(最大精度1024级)
- 最多支持 5个外部通道(AIN0-AIN4),复用GPIO:PC0-PC4(具体封装可能不同)
-
参考电压
- 默认使用 ( V_{DD} ) 作为参考电压(通常3.3V)
- 可通过
ADC_CR2寄存器选择内部参考电压(需根据手册确认是否支持)
-
采样速率
- 最高采样率约 1MHz(单次转换时间≈1μs)
操作步骤(寄存器配置)
#include "stm8s.h"
void ADC_Init(void) {
// 1. 使能ADC时钟
CLK_PCKENR2 |= (1 << CLK_PCKENR2_ADC); // 开启ADC外设时钟
// 2. 配置GPIO为浮空输入
PC_DDR &= ~(0x1F); // PC0-PC4设为输入
PC_CR1 &= ~(0x1F); // 浮空输入模式
// 3. ADC基本配置
ADC_CR1 = 0x00; // ADC时钟=fMASTER/18, 单次模式
ADC_CSR = 0x00; // 初始通道选择(如AIN0)
}
u16 ADC_Read(ADC_Channel_TypeDef channel) {
ADC_CSR = channel; // 选择转换通道
ADC_CR1 |= ADC_CR1_ADON; // 唤醒ADC(首次启动需延时)
delay_us(10);
ADC_CR1 |= ADC_CR1_ADON; // 再次写入启动转换
while (!(ADC_CSR & ADC_CSR_EOC)); // 等待转换完成
ADC_CSR &= ~ADC_CSR_EOC; // 清除标志位
return ADC_DRH << 8 | ADC_DRL; // 返回10位结果
}
关键寄存器说明
| 寄存器 | 作用 |
|---|---|
ADC_CR1 |
时钟分频、工作模式 |
ADC_CSR |
通道选择、转换结束标志(EOC) |
ADC_DRH/L |
存储转换结果(高8位+低2位) |
注意事项
-
首次启动延迟
首次使能ADC需延时约7μs(唤醒时间),建议连续两次写ADON位。 -
采样时间调整
通过ADC_SQR设置采样时间(默认较慢),适当延长可提高精度:ADC_SQR1 |= (0x03 << 4); // 设置采样时间=55.5周期(例) -
参考电压稳定性
高精度应用时,建议使用外部参考电压源(如TL431),避免 ( V_{DD} ) 波动影响精度。
应用示例(读取电位器)
// 连接电位器到PC0(AIN0)
u16 read_potentiometer(void) {
u16 adc_val = ADC_Read(ADC_CHANNEL_0);
return (adc_val * 3300) >> 10; // 转换为电压值(mV)
}
建议结合ST官方库(STVD/Cosmic)开发,简化寄存器操作。实际使用前请查阅数据手册确认引脚复用和电气特性(Doc ID 14587 Rev 10)。
芯圣电子兼容STM8S003的王牌选手-HC89S003A系列
HC89S003A系列是芯圣电子在2021年推出的HC89S003系列的全新升级版。不仅性能上超越前代,在兼容STM8S003系列这方面表现更为优异!覆盖了STM8S003的所有管脚功能,电源管脚
2022-09-15 15:27:56
用stm8s003和n76e003写了底层驱动
前段时间做了个88颗灯珠的原形灯板,分别用stm8s003和n76e003写了底层驱动,根据手册要求代码如下:STM8S003#include "fy_ws2812b.h"/*此
overheat
2021-11-23 08:09:58
stm8f103和stm8s003有何不同
1.先上脚位图,不要问我为什么是stm8f103,stm8f103和stm8s003只有内存的不同。2.上代码,选用PC4(AIN2)为ADC转换引脚,只提供函数,自己选择调用,不追求精度的话可以
微风挽雨
2021-12-10 06:52:06
STM8S003程序偶尔会不见是为什么?
我目前使用STM8S003 並且有使用到option byte 在正常使用的過程中,有時候程式就突然不見了, 不知道各位有沒有過沒這樣的問題? 然後重新燒錄的時候會失敗並且出現下面的訊息
马汉三呐
2023-10-20 08:19:48
STM8S003移植N76E003功耗增加了一倍怎么解决?
STM8S003移植N76E003,功耗增加了一倍,除了降主频外,还有其它降功耗的办法吗,用到三路ADc,两时钟,一串口
吴与伦比
2023-09-01 07:22:16
STM8S003单片机ADC采样通道有几个呢
STM8S003单片机ADC采样通道总共有5个,从AIN2---AIN6,多通道采样时需要将ADC转换设置为单次转换模式,每次切换采样通道后,需要重新初始化 ADC,采样结果在中断中读取。IO口
jerry181855
2022-02-21 07:04:42
分享 STM8S003开发板工程文件原理图
`由于用户的开发需求,接触到STM8S系列的单片机,起初并不看好,但是它的价格很亲民,STM8S003淘宝价格普遍在0.9-1.5之间不等,正常在1.05就能买到,很便宜。对于产品要求不高的场合可以
猛男217
2019-09-28 18:46:01
如何控制stm8s003核心板进行简单的IO输入输出/中断/窗口看门狗/全休眠功能?
如何控制stm8s003核心板进行简单的IO输入输出/中断/窗口看门狗/全休眠功能?
snandi
2022-02-21 06:02:44
STM8S003单片机UID读取的方法有几种
最近做项目时需要用到单片机的序列号,于是查了一下STM8S003单片机UID读取的方法。读取UID方法大概分两种,一种是直接在地址中读取,一种是通过定义一个联合体,将联合体的起始地址设置在UID起始
乔伊斯e
2022-02-21 06:15:02
STM8S003单片机的ADC怎样才能实现连续转换呢
STM8S003单片机内部ADC为12位,A/D转换的各个通道可以执行单次和连续的转换模式。 单次转换模式的意思就是,ADC每次转换一次数据后,就会停止转换,如果还需要继续转换的话,就需要手动开启
gvjhvbc
2022-02-21 06:38:50
怎样去读取STM8S003单片机各个通道的ADC采样值呢
在ADC多通道采样时遇到了一个问题,费了半天劲才找到原因。在此将分析过程记录下来。这是STM8S003单片机5个通道ADC采样程序,在主函数中依次读取各个通道的ADC采样值。首先单独测试一下每个通道
shbaoyan
2022-02-21 07:35:50
EN8F5113完全兼容替代意法半导体STM8S003单片机
还有没有国产替代厂商能完美兼容替代ST单片机STM8S003、华大HC32F003和新唐N76E003芯片的呢?下面英锐恩的小编为大家介绍一款完美兼容替代上述型号的芯片:恩智微低功耗增强型8051
2022-10-18 15:50:57
STM8S003单片机系统开发平台的搭建
一、硬件开发环境的搭建图示电路板上所用单片机即为STM8S003,仿真器(或者叫下载器、调试工具)为ST-Link V2,再加一台电脑。在电脑上首次插上ST-Link V2需要安装驱动软件,驱动软件
一只耳朵怪
2020-11-26 16:54:03
STM8S003单片机最小系统的电路原理图
本文以ST公司的STM8S003单片机为例,给大家讲解一个单片机最小系统的电路原理图:通过单片机采集一个按键信号,点亮一颗LED灯。如果你看懂了这张原理图,单片机硬件就入门了——真的到进门了!一
一只耳朵怪
2020-11-26 16:45:20
如何用stm8s003让nrf24l01发送数据?
大家好,请问一下用stm8s003让nrf24l01发送数据,让stm32接收数据。程序如下const u8 TX_ADDRESS[TX_ADR_WIDTH]= {0x34
青上也
2020-07-22 04:11:56
stm8单片机例程分享
使用stm8单片机模拟串口功能实现STM8S003单片机串口实现printf函数功能STM8单片机输出SPWM波STM8单片机PWM单脉冲模式STM8S003单片机定时器4TIM4功能实现STM8S003单片机定时器2TIM2功能实现STM8S003单片机定时器1TIM1功
挽你何用
2022-01-27 07:37:24
STM8S003引脚坑(开发过的人都知道)
实验目的 :控制stm8s003核心板进行简单的IO输入输出、中断、窗口看门狗,全休眠功能0.先看手册PB4和PB5引脚因为内部没有上拉电阻,所以不能输出高电平只能浮空输入。浮空输入也有问题 因为它
h1654156079.5272
2022-04-21 14:16:49
使用N76E003单片机开发的项目
1、项目说明这是本人使用新唐N76E003单片机开发的第一个项目,通过博客来记录开发的过程,以便以后可以参考,同时也留点回忆。此次的项目使用的N76E003是能够与STM8S003进行引脚兼容,而且
硕达科讯
2021-11-22 07:14:56
用stm8s003让nrf24l01发送数据,让stm32接收数据的疑问如何解答
大家好,请问一下用stm8s003让nrf24l01发送数据,让stm32接收数据。程序如下const u8 TX_ADDRESS[TX_ADR_WIDTH]= {0x34
韩程瑞1
2020-07-19 08:01:00
求分享MCU N76E003AT20详细资料
听说新唐出来个 N76E003AT20对标STM8S003的,上新唐官网搜Datasheet竟然没找到
yfdsfqdqd
2023-06-25 11:34:29
STM8S003中的快速中断
嗨,对于我的项目,我使用外部端口中断。当它到来时,我必须进行ADC转换。中断来自每5 us ....每隔5us中断后可以进行ADC转换吗?我正在使用STM8S003K3 MCU的发现套件进行测试 米
60user77
2019-05-28 15:26:51
STM8单片机串口发送引脚和接收引脚的相关资料推荐
在使用STM8S003单片机时,需要用到ADC采样功能,STM8S003总共有5个ADC采样口,但是其中两个采样口是和串口复用的,如果当ADC口用,就不能用串口,如果当串口用,就不能用ADC口。通过
caosurround
2022-01-27 08:04:57
在STVD中编译显示错误
您好,我正在修改已经可以使用的STM8S003的代码。但是代码停止了工作,即使我还没有做任何改动。STVD显示以下错误消息:#error clnk Debug
60user42
2019-06-05 14:25:47
请问N76E003能接外部晶体吗?
N76E003号称与STM8S003兼容,但我看手册上,只标有OSC IN 的引脚,并且在说明中说:XIN: If the ECLK mode is enabled, XIN
hfgdf
2023-06-26 07:47:49