STC8G1K08A8pin的芯片,这种没有verf的该怎么接线 | 已解决
我用STC8G1K08A8pin的芯片,想用P3.2口作为ADC的端口,我的代码已经将P3.2作为高阻输入,并且按照案例做了时钟的配置和启动。结果ADC_FLAG 一直不跳,程序卡主了。。。这是我的ADC代码
"""C
#include "adc.h"
#include "serial.h"
#include "intrins.h"
void init_port(void){
P3M0 &= ~0x04;
P3M1 |= 0x04;
}
void init_adc(void){
init_port();
delay_ms(1);
//设置采样时钟
P_SW2 |= 0x80;
ADCTIM = 0x3f; //设置 ADC 内部时序
P_SW2 &= 0x7f;
ADCCFG = 0x0f;
//打开电源
ADC_CONTR &= 0x80;
}
void start_adc(void) {
ADC_CONTR |= 0x42; //0010
_nop_();
_nop_();
}
u8 get_adc_n() {
while(!(ADC_CONTR & 0x20));
// uart_send_str("have adc number\r\n");
ADC_CONTR &= ~0x20;
return ADC_RES;
}
void close_adc(void){
ADC_CONTR &= 0x7f;
}
"""
我想问问是我的代码问题还是接线问题{:4_167:}
深圳国芯人工智能有限公司-产品_STC8G系列 (stcai.com)
PIN4, GND/AGnd,就是 ADC的模拟地
本帖最后由 小鸟肥肥 于 2023-12-19 19:26 编辑
神农鼎 发表于 2023-12-19 19:09
PIN4, GND/AGnd,就是 ADC的模拟地
可是我是的实物连接图里带了个滑动变阻器,然后我用万用表测了电压是没有问题的,接地也是用的GND,而且ADC_FLAG一直检测不结束,导致程序卡主了 用仿真功能来调试:
【新提醒】仿真 STC8 系列 MCU,用 STC-USB Link1D 全自动仿真/脱机下载 工具 ! 有视频讲解 - 仿真/ISP下载/做自己的ISP/编译器/头文件 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
小鸟肥肥 发表于 2023-12-19 19:23
可是我是的实物连接图里带了个滑动变阻器,然后我用万用表测了电压是没有问题的,接地也是用的GND,而且AD ...
ADC_FLAG一直检测不结束,只有两种可能:
1、你用的MCU没有ADC功能(比如用了STC8G1K08-8PIN没有ADC)。
2、没有开启ADC电源。
ADC模块是一个纯硬件的外设,只要初始化正确,一旦启动,必然会结束。 梁工 发表于 2023-12-19 22:32
ADC_FLAG一直检测不结束,只有两种可能:
1、你用的MCU没有ADC功能(比如用了STC8G1K08-8PIN没有ADC)。
...
感谢梁工,问题找到了,是没有开启ADC电源{:4_167:},是代码写错了,ADC开启电源的时候用了&=,导致一直没开启电源 感谢回复问题的各位,问题找到了 还是建议,用仿真来调试,查找问题更直观 金天又加了一次客服,这次通过了,以个人名义申请了一个 STC-USB Link1D ,学习一个仿真怎么玩,之前每次都是打板回来焊好测试,有问题在打板,比较费时费钱,喜望通过仿真能改善一下,少打板子
页:
[1]