[mw_shl_code=c,true] STM324xG_LCD_Init(); /* 初始化LCD液晶屏 */
SRAM_Init();
*(uint16_t*)(0x68008000) = 0xaaaa; //ceshi
SRAM_DMA_Config();
ADC1_CH13_DMA_Config();
/* Start ADC1 Software Conversion */
ADC_SoftwareStartConv(ADC1);
com_init();
LCD_Clear(Black);
LCD_WriteRAM_Prepare();
//--------------------------------
NVIC_GroupConfig();
SZ_STM32_KEYInit();[/mw_shl_code]
ADC_SotwareStartConv()这个函数的作用是什么?
我看了一下数据手册,发现是将SWSTART置位。程序中我没有使用定时器,程序依然可以运行,ADC依然可以采样。是不是只要把这个位置位,单片机就可以自动采样?那这采样频率又怎么算?
回复【2楼】正点原子:
---------------------------------
ADC_SoftwareStartConv(ADC1);这个设置完成之后,总转换时间就是固定的?
数据手册上是这么写的.
总转换时间的计算公式如下:
Tconv
= 采样时间+ 12 个周期
示例:
ADCCLK = 30 MHz 且采样时间= 3 个周期时:
Tconv
= 3 + 12 = 15 个周期= 0.5 μs(APB2 为60 MHz 时)
按照我的理解。
软件触发不能改变总采样时间,但是外部触发可以通过改变定时器来控制ADC的转换速度。
是这样吗?
还有一个问题,DMA里面有M2M模式,这个模式不支持循环模式,传输完数据之后就停止了。现在我想达到一个目的,就是每隔一段时间进行一次M2M的传输,那这DMA请求怎么触发?
一周热门 更多>