stm32DMA通道 ADC通道
DMA:
1.使用DAC的时候,将转化后得到的模拟信号通过IO口输出的时候,为什么还将IO口配置能输入模式
PS:stm32手册上定义PA4和PA5分别和DAC1通道和DAC2通道相连 ;
DMA1和DMA2使用按个通道手册中也是有规定的:
波形数据从内存带DAC是怎么DMA是怎么传输的?:
/* 配置DMA2 */
DMA_InitStructure.DMA_PeripheralBaseAddr = DAC_DHR12RD_Address;//外设数据地址
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&DualSine12bit ;//内存数据地址 DualSine12bit
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;//数据传输方向内存至外设
DMA_InitStructure.DMA_BufferSize = 32;//缓存大小为32字节
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设数据地址固定
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//内存数据地址自增
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word; //外设数据以字为单位
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;//内存数据以字为单位
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;//循环模式
DMA_InitStructure.DMA_Priority = DMA_Priority_High;//高DMA通道优先级
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;//非内存至内存模式
DMA_Init(DMA2_Channel4, &DMA_InitStructure);
当传输的我们数据大小为32位 的时候,发送给DAC转化,
DMA通道选择:
外设请求使用DMA传输的时候,关于DMA通道的选择其stm32手册上都有规定的,需要我们对应手册去查询
ADC通道:
函数ADC_RegularChannelConfig( )。
假设我们使用了PC0
ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_55Cycles5)可
以配置通道的采样周期。该函数有4个参数,第一个参数指使用哪个ADC,我们选ADC1。第
二个参数,本次采样使用的通道,我们选择ADC_Channel_10。第三个参数,采样顺序。本
实验我们只有一个采样,直接给它赋值为:1.。第四个参数,配置采样周期。
这里PC0管脚是AD的ADC_Channel_10输入通道,这个通道并不是随意的选择的,在ST
提供的手册《【英文】STM32F107VC数据手册V6.pdf》中,有对应的说明:
译注:(具体见stm32手册)
表中的引脚名称标注中出现的ADC12_INx(x表示4~9或14~15之间的整数),表示这个引脚可以是
ADC1_INx或ADC2_INx。例如:ADC12_IN9表示这个引脚可以配置为ADC1_IN9,也可以配置为
ADC2_IN9。
同样,表中的引脚名称标注中出现的ADC123_INx(x表示0~3或10~13之间的整数),表示这个引脚可
以是ADC1_INx或ADC2_INx或ADC3_INx。
串口:
//P:串口接收从io口中传来的数据
USART_InitStructure.USART_WordLength = USART_WordLength_8b; //P:配置串口传输的字长,一个字符一个字符的接受
- Keil MDK破解过程详解[18年05月20日 11:11]
- STM32F407之模拟I2C(二)之24C128[18年05月20日 12:18]
- STM32F1使用I/0模拟I2C接口[18年05月20日 12:17]
- STM32模拟I2C程序[18年05月20日 12:13]
- STM8S 模拟I2C程序[18年05月20日 12:14]
- 普通IO口模拟实现I2C通信及应用解析[18年05月20日 12:12]