
聊聊ST MCU定时触发ADC的话题 某工程师利用STM8S芯片开发产品,想用定时器定时触发ADC采样。技术资料上也说是可以通过TIM1的TRGO触发AD采样,可发现根本不定时采样。 他确认正确配置了TIM1并使其正常工作,定时溢出,同时在ADC相关寄存器里也做了外部触发使能和触发源[TIM1 TRGO]的选择。 ![]() 按理说,到此应该可以正常定时AD采样了,可往往好事多磨。结果并不是所期待的定时AD采样。 后来发现问题出在TRGO事件这个地方,误以为TIM1每次溢出就会产生所期待的TRGO事件。其实,事实并非如此。 ![]() 显然,对于TIM1,TRGO的事件源有多个选项可以选择,默认状态时只有RESET事件才产生TRGO ,这分明不是当事人所期望的,应该配置为UPDATE 事件才合适。客户工程师增加相关代码后正常运作。 说实在的,对于操作寄存器的人来说,尤其头次使用该功能的话的确容易出现类似上面的疏忽。当然,如果用STM32系列的MCU做同样的事情,也有类似的配置问题,即除了使能外部触发和选择外部触发事件TRGO外,还要记得对TRGO事件的进一步选择配置,默认的可能并非你要的。 文章出处: 茶话MCU |
谢谢分享! |
ST-LINK向STM8上传程序出错。
从STM8S转到STM8L开发时要注意的几个问题
初始化与硬件的通信失败:SWIM错误[3]:检测到硬件与软件不兼容
使用IAR新建STM8S001J的工程,没有这款芯片的选项,怎么解决?
請教大神有關 STM8s STVD編譯錯誤的問題
我用IAR烧录程序出现 SWIM error[30020],这是为什么啊?
stm8s003串口中断方式只能接收两个字节
请问CAN的波特率会和单片机芯片本身有关吗?
求助!stm8s103K3开启TIM4更新中端,修改程序代码地址0x9000后程序一直重新执行。
手头有项目准备用STM8S003 MCU, 这个系列的MCU开发工具只能使用STVD吗? STM8CubeMX有用过的大佬吗?生成的代码只能用IAR?