ADC-外部触发ADC配置
ADC通道的转换可以由外部事件触发,设置了 ADC_CTLR2 寄存器的 EXTTRIG 或 JEXTTRIG位,则可分别通过外部事件触发规则组或注入组通道的转换。注 : 当外部触发信号被选为ADC规则或注入转换时,只有它的上升沿可以启动转换。
/*ADC初始化部分代码*/
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T3_TRGO;//定时器3的TRGO事件
ADC_ExternalTrigConvCmd(ADC1, ENABLE);//开启外部事件触发ADC启动
/*定时器部分代码*/
void TIM3_TRGO(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure={0};
RCC_APB1PeriphClockCmd( RCC_APB1Periph_TIM3, ENABLE );
TIM_TimeBaseInitStructure.TIM_Period = 10-1;
TIM_TimeBaseInitStructure.TIM_Prescaler = 96-1; //10us触发一次
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseInit( TIM3, &TIM_TimeBaseInitStructure);
TIM_SelectOutputTrigger(TIM3, TIM_TRGOSource_Update); //选择TRGO作为触发源为定时器更新时间
TIM_ARRPreloadConfig( TIM3, ENABLE );
TIM_Cmd(TIM3, ENABLE);
}
int main(void)
{
ADC_Function_Init();
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_71Cycles5 );//84/12=7us<10us(定时器触发转换时间),
TIM3_TRGO();
while(1)
{
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix