<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                DAC可謂是stm32繼按鍵最簡單的一個寄存器配置吧,花了半個小時搞定! DAC主要特征 ● 2個DAC轉換器:每個轉換器對應1個輸出通道 ● 8位或者12位單調輸出 ● 12位模式下數據左對齊或者右對齊 ● 同步更新功能 ● 噪聲波形生成 ● 三角波形生成 ● 雙DAC通道同時或者分別轉換 ● 每個通道都有DMA功能 ● 外部觸發轉換 看了這些東西,貌似很激動的樣子,我們下面就開始配置DAC外設了 先直接看看寄存器: ![](https://box.kancloud.cn/2016-06-21_576915b890486.jpg) 位12?DMAEN1:DAC通道1 DMA使能(DAC channel1 DMA enable 該位由軟件設置和清除。 0:關閉DAC通道1 DMA模式; 1:使能DAC通道1 DMA模式。 MAMP1[3:0]:DAC通道1屏蔽/幅值選擇器(DAC channel1 mask/amplitude selector) ?位11:8? 由軟件設置這些位,用來在噪聲生成模式下選擇屏蔽位,在三角波生成模式下選擇波形的幅 值。 0000:不屏蔽LSFR位0 / 三角波幅值等于1; 0001:不屏蔽LSFR位[1:0] / 三角波幅值等于3; 0010:不屏蔽LSFR位[2:0] / 三角波幅值等于7; 0011:不屏蔽LSFR位[3:0] / 三角波幅值等于15; 0100:不屏蔽LSFR位[4:0] / 三角波幅值等于31; 0101:不屏蔽LSFR位[5:0] / 三角波幅值等于63; 0110:不屏蔽LSFR位[6:0] / 三角波幅值等于127; 0111:不屏蔽LSFR位[7:0] / 三角波幅值等于255; 1000:不屏蔽LSFR位[8:0] / 三角波幅值等于511; 1001:不屏蔽LSFR位[9:0] / 三角波幅值等于1023; 1010:不屏蔽LSFR位[10:0] / 三角波幅值等于2047; ≥1011:不屏蔽LSFR位[11:0] / 三角波幅值等于4095。 位7:6 ?WAVE1[1:0]:DAC通道1噪聲/三角波生成使能(DAC channel1 noise/triangle wave generation? enable)? 該2位由軟件設置和清除。 00:關閉波形生成; 10:使能噪聲波形發生器; 1x:使能三角波發生器。 位5:3 ?TSEL1[2:0]:DAC通道1觸發選擇(DAC channel1 trigger selection) ? 該位用于選擇DAC通道1的外部觸發事件。 000:TIM6 TRGO事件; 001:對于互聯型產品是TIM3 TRGO事件,對于大容量產品是TIM8 TRGO事件; 010:TIM7 TRGO事件; 011:TIM5 TRGO事件; 100:TIM2 TRGO事件; 101:TIM4 TRGO事件; 110:外部中斷線9; 111:軟件觸發。 注意:該位只能在TEN1= 1(DAC通道1觸發使能)時設置。 位2 ?TEN1:DAC通道1觸發使能(DAC channel1 trigger enable)? 該位由軟件設置和清除,用來使能/關閉DAC通道1的觸發。 0:關閉DAC通道1觸發,寫入寄存器DAC_DHRx的數據在1個APB1時鐘周期后傳入寄存器 DAC_DOR1; 1:使能DAC通道1觸發,寫入寄存器DAC_DHRx的數據在3個APB1時鐘周期后傳入寄存器 DAC_DOR1。 注意:如果選擇軟件觸發,寫入寄存器DAC_DHRx的數據只需要1個APB1時鐘周期就可以傳入 寄存器DAC_DOR1。 ?位1?BOFF1:關閉DAC通道1輸出緩存(DAC channel1 output buffer disable) 該位由軟件設置和清除,用來使能/關閉DAC通道1的輸出緩存。 0:使能DAC通道1輸出緩存; 1:關閉DAC通道1輸出緩存。 位0 ?EN1:DAC通道1使能(DAC channel1 enable) ? 該位由軟件設置和清除,用來使能/失能DAC通道1。 0:關閉DAC通道1; 1:使能DAC通道1。 因為DAC1對應的是PA4,所以我們在初始化DAC1的時鐘時別忘了 PA4 RCC->APB1ENR |= 1<<29; RCC->APB2ENR |= 1<<2; 因為我們這里不用DMA,所以就關掉 DAC->CR &= ~(1<<12);//close DMA 如果想輸出三級波,那就把6:7位都置1,想輸出噪聲我們就弄成10b,什么都不想要我們就用00b;這里我想玩玩三角波,我就配置稱11; DAC->CR &= ~(3<<6);//好習慣是先把幾位全部清空 DAC->CR |= 3<<6; 因為我們上面設置了三級波模式,這里我們來設置三級波的VPP,可以根據上面的datasheet設置! DAC->CR &= ~(0xf<<8); DAC->CR |= 0xf<<8; DA的觸發模式,為了方便起見我們之間選用軟件觸發,但是 ![](https://box.kancloud.cn/2016-06-21_576915b8a6301.jpg) 所以我們要現設置TEN1=1;然后再設置成軟件觸發 DAC->CR |= 1<<2; DAC->CR |= 7<<3;//sw 我們也用不上DAC的緩存,所以二話不說關掉! DAC->CR |= 1<<1; 下面設置要輸出的偏移電源,0當然就是0V了, DAC->DHR12R1 = 0; 因為我們用到了軟件觸發,所以我們要時刻關注軟件觸發寄存器,寄存器就兩位: ![](https://box.kancloud.cn/2016-06-21_576915b8c21d3.jpg) DAC->SWTRIGR |= 1<<0; 然后就打開DA,開始工作! DAC->CR |= 1<<0; 下面附上我的代碼! ~~~ /* dac.c */ #include <stm32f10x.h> void dac_init() { RCC->APB1ENR |= 1<<29; RCC->APB2ENR |= 1<<2; DAC->CR &= ~(1<<12); //close DMA DAC->CR &= ~(0xf<<8); DAC->CR |= 0xf<<8; //Vp = 512 DAC->CR &= ~(3<<6); // DAC->CR |= 3<<6; DAC->CR |= 1<<2; DAC->CR |= 7<<3; //sw DAC->CR |= 1<<1; DAC->DHR12R1 = 0; DAC->SWTRIGR |= 1<<0; DAC->CR |= 1<<0; } ~~~ 主函數 ~~~ #include <stm32f10x.h> #include "init.h" #include "usart.h" #include "stdio.h" #include "dac.h" int main() { rs232_init(CPU_72M,9600); dac_init(); while(1) { if(!(DAC->SWTRIGR&(1<<0))) { DAC->SWTRIGR |= 1<<0; } } } ~~~ 效果: ![](https://box.kancloud.cn/2016-06-21_576915b8d99ba.jpg) 還有什么說的?慢慢瞎搞吧!把瞎搞進行到底!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看