STM32F030 有關DMA的CSELR訪問問題

2020-01-10 19:38发布

各位大大好
最近我在嘗試使用DMA去搬移USART的資料
居然發現我不能用DMA1->CSELR去找到並且修改他的寄存器
未命名.png (64.5 KB, 下载次数: 0) 下载附件 2018-6-14 15:04 上传
請問我要怎麼去訪問這個寄存器?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
陳聖文
2020-01-11 10:57
本帖最后由 陳聖文 于 2018-6-15 15:21 编辑
20061002838 发表于 2018-6-14 18:40
改名字了,叫做RMPCR


我發現我這款不是這樣去選擇的
是從 9.1.1 SYSCFG configuration register 1 (SYSCFG_CFGR1) 去選擇的
其實我的組態設定和概念都沒問題
唯一的問題是我手殘漏打一個字

以下是我原先的組態
  1.                
  2. SYSCFG->CFGR1|=SYSCFG_CFGR1_USART1TX_DMA_RMP;                                //映射到通道4
  3. DMA1_Channel4->CPAR        =                USART1->TDR;                //設定通道2的硬件地址為TDR
  4. DMA1_Channel4->CMAR        =                (uint32_t)(&the_TX_buffer);        //設定通道2的內存地址為the_TX_buffer
  5. DMA1_Channel4->CNDTR=                64;                                                        //資料筆數為64筆,剛好是陣列大小
  6. DMA1_Channel4->CCR        |=        DMA_CCR_PL_0                                        //PL[1:0]被設定為 01 中等優先權
  7.                         |                DMA_CCR_MINC                        //設置內存增量模式
  8.                         |                DMA_CCR_DIR                                //設定資料方向是內存->硬體
  9.                         |                DMA_CCR_EN;                                //致能此通道2
复制代码

以下是我修改後的組態
  1.        
  2. SYSCFG->CFGR1|=SYSCFG_CFGR1_USART1TX_DMA_RMP;                        //映射到通道4
  3. DMA1_Channel4->CPAR        =                (uint32_t)(&USART1->TDR);        //設定通道2的硬件地址為TDR
  4. DMA1_Channel4->CMAR        =                (uint32_t)(&the_TX_buffer);        //設定通道2的內存地址為the_TX_buffer
  5. DMA1_Channel4->CNDTR=                64;                                                        //資料筆數為64筆,剛好是陣列大小
  6. DMA1_Channel4->CCR        |=        DMA_CCR_PL_0                                        //PL[1:0]被設定為 01 中等優先權
  7.                         |                DMA_CCR_MINC                        //設置內存增量模式
  8.                         |                DMA_CCR_DIR                                //設定資料方向是內存->硬體
  9.                         |                DMA_CCR_EN;                                //致能此通道2
  10.                
复制代码

順帶一題原本是映射到通道2和3的
這不是重點,重點是我在CPAR這邊我沒打上'&'
然後,請求一直沒被執行...
整整兩天啊,我的青春

一周热门 更多>