久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2463|回復: 0
打印 上一主題 下一主題
收起左側

TIM3-UP_DMA1_chanel3

[復制鏈接]
跳轉到指定樓層
樓主
ID:716413 發表于 2020-8-10 14:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
轉一個帖子,以供參考
1.DMA配置
void DMA_Configuration(void)
{
DMA_InitTypeDef D;  
DMA_DeInit(DMA1_Channel3); //DMA1_3通道初始化U
D.DMA_PeripheralBaseAddr =(u32)&TIM3->CCR1;      //DMA外設基址 TIM3_CCR1_Address
D.DMA_MemoryBaseAddr = (u32)buf;                 //DMA內存基址
D.DMA_DIR = DMA_DIR_PeripheralDST; //DST外設作為數據傳送目的地址,SRC則作為源地址
D.DMA_BufferSize = 4;                                   //DMA緩存大小
D.DMA_PeripheralInc = DMA_PeripheralInc_Disable; //外設地址寄存器不增加
D.DMA_MemoryInc = DMA_MemoryInc_Enable;          //內存地址寄存器不增加
D.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; //外存字寬16bit
D.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;              //內存字寬16bit
D.DMA_Mode = DMA_Mode_Normal;  //工作在循環模式
//D.DMA_Mode =DMA_Mode_Circular;
D.DMA_Priority = DMA_Priority_High; //DMA置為高優先級
D.DMA_M2M = DMA_M2M_Disable;                  //不置為內存到內存傳輸
DMA_Init(DMA1_Channel3, &D);                  //初始化DMA1
DMA_Cmd(DMA1_Channel3, ENABLE);     //DMA1_3使能
}
2.定時器PWM輸出配置
u16 buf[4] = {200,400,600,800};
static void GPIO_Config(void)
{                                                         
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);         //TIM3鐘源
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB, ENABLE); //GPIOA 配置: TIM3 channel 1 和 2 推挽復用
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  // 復用推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
void TIM3_Init()
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
//定時器設置
TIM_TimeBaseStructure.TIM_Period = 999;
//當定時器從0計數到999,即為1000次,為一個定時周期
TIM_TimeBaseStructure.TIM_Prescaler = 0;  //設置預分頻:不預分頻,即為36MHz
TIM_TimeBaseStructure.TIM_ClockDivision = 0;        //設置時鐘分頻系數:不分頻
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上計數模式
//TIM_TimeBaseStructure.TIM_RepetitionCounter = 2;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
//PWM通道1模式設置
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;    //配置為PWM模式1
TIM_OCInitStructure.TIM_OutputState =TIM_OutputState_Enable;        
TIM_OCInitStructure.TIM_Pulse = buf[0];
//設置跳變值,當計數器計數到這個值時,電平發生跳變
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;  
//當定時器計數值小于CCR1_Val時為高電平
TIM_OC1Init(TIM3, &TIM_OCInitStructure); //使能通道1
TIM_Cmd(TIM3, ENABLE); //TIM3使能
TIM_DMACmd(TIM3, TIM_DMA_Update, ENABLE);
//TIM3 DMA請求使能,注:TIM3_Update請求對應DMA通道為DMA1_chanel3
}
3.主函數
extern u16 buf[4];
int main()
{
GPIO_Config(); //配置端口
TIM3_Init();  
DMA_Configuration(); //配置DMA
}
可以看到PA6輸出低電平占200,400,600,800的脈沖,若D.DMA_Mode=DMA_Mode_Circularl; 則200,400,600,800的脈沖循環出現。
TIM_DMACmd(TIM3, TIM_DMA_Update,ENABLE);TIM_DMA_Update對應通道3,剛開始設置TIM_DMA_CC1對應通道6無法實現本現象,原因未知。

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本中文字幕在线视频 | 国产精品视频一区二区三区四蜜臂 | 久久69精品久久久久久久电影好 | 欧美日韩国产传媒 | 欧美videosex性极品hd | 久久久久久国产精品免费免费男同 | 欧美日韩国产精品一区二区 | 欧美成人一区二区 | 成人在线视频网站 | 在线观看免费毛片 | 999久久| 日韩在线免费 | 一区视频在线 | 中文字幕av高清 | 99精品一区二区 | 国产精品99久久久精品免费观看 | 青青草av在线播放 | 99reav| 一级黄色录像毛片 | 7777久久| 精品亚洲一区二区三区四区五区高 | 欧美久久久网站 | 国产精品视频免费观看 | 精品欧美一区二区三区免费观看 | 中文字幕在线观看一区 | 精品国产31久久久久久 | 日韩一区二区在线看 | 国产真实精品久久二三区 | 国产精品伦一区二区三级视频 | 日韩精品一区在线 | 日本精a在线观看 | 欧美一级α片 | 特黄小视频 | 国产一区二区电影网 | 日韩av在线免费 | 国产91在线播放 | 亚洲精品黄色 | 成人三级在线播放 | 免费黄色网址视频 | 91精品久久久久久久久久小网站 | 国产精华一区 |