91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

利用stm32F407單片機驅動線陣CCD傳感器 -- tcd1304,其他型號stm32單片機稍作更改即可應用

資源截圖

代碼片段和文件信息

#include?“main.h“

extern?__IO?uint16_t?aTxBuffer[CCDSize];


/*?ADC1?-?Input?on?Ch13?(PC3)??-?Triggered?by?TIM4?Ch4?-?DMA2?Ch0?Stream0?*/
void?ADC1_conf()
{
ADC_InitTypeDef???????ADC_InitStructure;
ADC_CommonInitTypeDef?ADC_CommonInitStructure;
DMA_InitTypeDef???????DMA_InitStructure;
GPIO_InitTypeDef??????GPIO_InitStructure;

/*?Clock?DMA2?and?ADC1?*/
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2?ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1?ENABLE);

DMA_InitStructure.DMA_Channel?=?DMA_Channel_0;??//通道0
DMA_InitStructure.DMA_PeripheralbaseAddr?=?(uint32_t)&ADC1->DR;??//ADC1->DR?存AD轉換的結果
DMA_InitStructure.DMA_Memory0baseAddr?=?(uint32_t)&aTxBuffer;????//目的地址,就是準備發送的地址
DMA_InitStructure.DMA_DIR?=?DMA_DIR_PeripheralToMemory;??????????//指定DMA的方向-->外設到內存
DMA_InitStructure.DMA_BufferSize?=?CCDSize; ?//大小就是CCD數據的大小
DMA_InitStructure.DMA_PeripheralInc?=?DMA_PeripheralInc_Disable;?//外設地址不自增
DMA_InitStructure.DMA_MemoryInc?=?DMA_MemoryInc_Enable; ?//內存地址自增
DMA_InitStructure.DMA_PeripheralDataSize?=?DMA_PeripheralDataSize_HalfWord;?//?指定DMA外設數據寬度?
DMA_InitStructure.DMA_MemoryDataSize?=?DMA_MemoryDataSize_HalfWord;//?指定DMA內存數據寬度?
DMA_InitStructure.DMA_Mode?=?DMA_Mode_Circular;??//?循環模式,要傳輸的數據項的數目在數據
//流配置階段自動用設置的初始值進行加載并繼續響應?DMA?請求。
DMA_InitStructure.DMA_Priority?=?DMA_Priority_High;??
DMA_InitStructure.DMA_FIFOMode?=?DMA_FIFOMode_Disable;?//軟件在處理一個存儲器區域的同時,?DMA?傳輸還可以填充/使用第二個存儲器區域。????????
DMA_InitStructure.DMA_FIFOThreshold?=?DMA_FIFOThreshold_HalfFull;?//傳輸20字節?如果你設置FIFO?為DMA_FIFOThreshold_Full那么,中間會發生2次傳輸,一次16字節,一次4字節。?
//如果你設置FIFO?為DMA_FIFOThreshold_HalfFull那么,中間會發生3次傳輸,一次8字節,一次8字節,一次4字節。
DMA_InitStructure.DMA_MemoryBurst?=?DMA_MemoryBurst_Single;??//內存突發傳輸每次轉移一個數據
DMA_InitStructure.DMA_PeripheralBurst?=?DMA_PeripheralBurst_Single;//外設突發傳輸每次轉移一個數據
DMA_Init(DMA2_Stream0?&DMA_InitStructure);
DMA_Cmd(DMA2_Stream0?ENABLE);

/* DMA2?interrupt?configuration?*/
// DMA_ITConfig(DMA2_Stream0?DMA_IT_TC?|?DMA_IT_HT?ENABLE);
DMA_ITConfig(DMA2_Stream0?DMA_IT_TC?ENABLE);

/* Configure?ADC1?Channel13?pin?(PC3)?as?analog?input?*/
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AN;
GPIO_InitStructure.GPIO_PuPd?=?GPIO_PuPd_NOPULL?;
GPIO_Init(GPIOC?&GPIO_InitStructure);

/* ADC1?Init?*/
ADC_CommonInitStructure.ADC_Mode?=?ADC_Mode_Independent;
ADC_CommonInitStructure.ADC_Prescaler?=?ADC_Prescaler_Div2;
ADC_CommonInitStructure.ADC_DMAAccessMode?=?ADC_DMAAccessMode_Disabled;
ADC_CommonInitStructure.ADC_TwoSamplingDelay?=?ADC_TwoSamplingDelay_5Cycles;
ADC_CommonInit(&ADC_CommonInitStructure);

/* ADC1?Init?- TIM4?Ch4?is?used?as?external?trigger?*/
ADC_InitStructure.ADC_Resolution?=?ADC_Resolution_12b;
ADC_InitStructure.ADC_ScanConvMode?=?DISABLE;
ADC_InitStructure.ADC_ContinuousConvMode?=?DISABLE;
ADC_InitStructure.ADC_ExternalTrigConvEdge?=?ADC_ExternalTrig

評論

共有 條評論