外设时钟的配置,有次ADC就是不工作,查问题查了很久,总是怀疑ADC配置问题,然后利用库函数的例程,发现就可以,最后发现,外设时钟没开启,外设时钟如下配置
CLK->PCKENR1 = 0x00;
CLK->PCKENR2 = 0x00;
导致ADC不工作。
查ADC不工作问题时,为什么会怀疑配置有问题呢,主要原因也是由于debug时,查看ADC寄存器发现跟期望值不符,ADC寄存器的值大部分为0,查看datasheet这些寄存器均是可读写的,按道理应该可以观察的到,但是就是不行,,最后打开外设时钟后,发现观察ADC寄存器跟期望一致了。
总结:外设时钟没开,ADC寄存器观察期望不符;外设时钟开了,ADC寄存器和期望相符。
ADC不断进入中断,导致其他任务无法执行
关键字:stm8s103 调试 ADC
编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic480713.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
推荐阅读
STM8S开发环境搭建IAR For STM8
***********************************************************************************************************************************/ 本文采用的是STM8S-Discovery开发板,开发板上半部分为ST Link调试器,芯片采用的是STM32F103C8,下半部分是STM8S105C6的开发板。 对于STM8的开发环境,主要采用两种,一种是IAR For STM8,另一种是官方的ST Toolset。ST Toolset中包含了两个工具STVD(ST Visual Develop)和STVP(ST
发表于 2019-12-05
STM8S内部时钟切换问题解决
/************************************************************************************************************************************ Name : STM8S内部时钟切换问题解决* Author : MingMing* Release : 2013/12/28* Update : 2013/12/29* E-mail : clint.wang@foxmail.com
发表于 2019-12-05
STM8S存储器的读写操作
/************************************************************************************************************************************ Name : STM8S存储器的读写操作* Author : MingMing* Release : 2014/1/2* Update : 2014/1/2* E-mail : clint.wang@foxmail.com
发表于 2019-12-05
stm8s iar printf打印信息
串口通信正常我在程序中#include <stdio.h>int fputc(int ch, FILE *f)//STM8S105,printf函数重定向 { while (!(UART2->SR&0x80)); UART2->DR=ch; return ch; } 同时需要修改IAR的Projec t- >Options -> General Options -> Library Configuration中的Library 项由"Normal"改为"
发表于 2019-12-03
STM8S 长按键识别
最近学习开发STM8S003 MCU,,刚入手这颗MCU,对很多功能不太了解,只能一边开发学习,记录一下学习过程。目前,需要实现KEY1按键长按3s进行关机,Linux下直接获取按键的开始时间戳和结束时间戳,可以直接确定按键的触发时间,目前MCU采用的是按键中断的方式,在中断触发后直接进入进入中断函数进行处理,根据定时器的特性,现在是采用方法如下: 将Tim1进行16分频,即频率为1Mhz,然后设置ARR(预装载计数器)为60000,即每次产生溢出时间为60ms, RCR(重复计数寄存器)为50,即 50 * 60 = 3000ms = 3s 后产生一个更新事件,而在按键中断函数中,在按键释放后,判断是否由此更新
发表于 2019-12-03
stm8s 定时器2测量脉冲宽度(单位 us)
void Init_Timer2(void){ GPIO_Init(GPIOA, GPIO_PIN_3, GPIO_MODE_IN_PU_NO_IT);//输入 无中断 TIM2_TimeBaseInit(TIM2_PRESCALER_16,65536-1); //16分频, 65ms 溢出 TIM2_Cmd(ENABLE); }uint16_t TIM2_GetCapture(void){ /* Get the Capture Register value */ uint16_t tmpccr = 0;&n
发表于 2019-12-02