找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3608|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

stm32內(nèi)部ADC采樣和濾波例程

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:31327 發(fā)表于 2020-8-14 09:31 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
int main(void)
{
        uint16_t usValue;

        /*
                由于ST固件庫(kù)的啟動(dòng)文件已經(jīng)執(zhí)行了CPU系統(tǒng)時(shí)鐘的初始化,所以不必再次重復(fù)配置系統(tǒng)時(shí)鐘。
                啟動(dòng)文件配置了CPU主時(shí)鐘頻率、內(nèi)部Flash訪問(wèn)速度和可選的外部SRAM FSMC初始化。
               
                系統(tǒng)時(shí)鐘缺省配置為72MHz,如果需要更改,可以修改:
                \Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
                中配置系統(tǒng)時(shí)鐘的宏。
        */
        
        InitBoard();        /* 為了是main函數(shù)看起來(lái)更簡(jiǎn)潔些,我們將硬件初始化的代碼封裝到這個(gè)函數(shù) */
        PrintfLogo();        /* 打印例程Logo到串口1 */        

        printf("請(qǐng)調(diào)節(jié)開(kāi)發(fā)板上的精密可調(diào)電阻,觀察ADC采樣值的變化\r\n");

        ADC_Configuration();        /* 配置PC4 為ADC1_IN14 */

        bsp_StartTimer(1, 300);        /* 定時(shí)器0周期 200毫秒 */

        /* 進(jìn)入主程序循環(huán)體 */
        while (1)
        {
                CPU_IDLE();          /* 這個(gè)宏在bsp_timer.h 中定義,目前定義為空。用戶可以修改這個(gè)宏實(shí)現(xiàn)CPU休眠和喂狗 */

                if (bsp_CheckTimer(1))        /* 定時(shí)到 */
                {
                        bsp_StartTimer(1, 300);        /* 啟動(dòng)下個(gè)定時(shí)周期 */

                        usValue = GetADC();

                        /* 注意: 末尾只有 \r回車(chē), 沒(méi)有\(zhòng)n換行,可以使PC超級(jí)終端界面穩(wěn)定在1行顯示 */
                        {
                                /* 超級(jí)終端界面上會(huì)顯示一個(gè)不斷旋轉(zhuǎn)的字符
                                增加這個(gè)功能,是為了避免程序死機(jī)的假象,因?yàn)锳DC采樣值很穩(wěn)定
                                */
                                static uint8_t pos = 0;

                                if (pos == 0)
                                        printf("|");
                                else if (pos == 1)
                                        printf("/");
                                else if (pos == 2)
                                        printf("-");
                                else if (pos == 3)
                                        printf("\\");                /* 注意:這個(gè)特殊字符需要轉(zhuǎn)義 */

                                if (++pos >= 4)
                                {
                                        pos = 0;
                                }

                                printf(" PC4口線ADC采樣值 = %5d , 電壓 = %4dmV\r",
                                        usValue, ((uint32_t)usValue * 3300) / 4095);

                        }
                }

                /* 這個(gè)地方可以插入 GetKey(), 擴(kuò)充對(duì)按鍵的響應(yīng)代碼 */
        }
}

ADC采樣和濾波例程.7z

210.84 KB, 下載次數(shù): 43, 下載積分: 黑幣 -5

stm32 內(nèi)部ADC采樣和濾波例程

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

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表