GD32入門到實戰21--輸入捕獲

我們新建capture_drv.c

#include <stdint.h>
#include <stdio.h>
#include "gd32f30x.h"
#include "delay.h"static void GpioInit(void) 
{rcu_periph_clock_enable(RCU_GPIOA);gpio_init(GPIOA,GPIO_MODE_IN_FLOATING,GPIO_OSPEED_10MHZ,GPIO_PIN_0);
}static void TimerInit()
{timer_parameter_struct timerInitPara;timer_struct_para_init(&timerInitPara);//給定時器結構體賦初值/*使能定時器時鐘*/rcu_periph_clock_enable(RCU_TIMER1);/*復位定時器*/timer_deinit(TIMER1);/*設置預分頻值*/timerInitPara.prescaler = 120 - 1;//時鐘頻率為1Mhz,周期為1us/*設置自動重裝載值*/timerInitPara.period = 65535;/*初始化定時器*/timer_init(TIMER1,&timerInitPara);//給定時器結構體賦初值timer_ic_parameter_struct icInitPara;timer_channel_input_struct_para_init(&icInitPara);/*設置上升沿/下降沿捕獲*/icInitPara.icpolarity = TIMER_IC_POLARITY_RISING;/*設置輸入通道*/icInitPara.icselection = TIMER_IC_SELECTION_DIRECTTI;timer_input_capture_config(TIMER1,TIMER_CH_0,&icInitPara);/*使能定時器的捕獲中斷*/timer_interrupt_flag_clear(TIMER1 ,TIMER_INT_FLAG_CH0);//清除中斷標志位timer_interrupt_enable(TIMER1,TIMER_INT_CH0);/*使能定時器中斷優先級*/nvic_irq_enable(TIMER1_IRQn, 0, 0);/*使能定時器*/timer_enable(TIMER1);
}static uint32_t g_icValue;//1 = 1us
void TIMER1_IRQHandler()
{if(timer_interrupt_flag_get(TIMER1 , TIMER_INT_FLAG_CH0) == SET)//判斷是否產生中斷{timer_interrupt_flag_clear(TIMER1 , TIMER_INT_FLAG_CH0);//清除中斷標志位g_icValue = timer_channel_capture_value_register_read(TIMER1, TIMER_CH_0) + 1;//讀取計數值timer_counter_value_config(TIMER1 , 0);//計數器清零}
}void CaptureDrvInit()
{GpioInit();TimerInit();
}void CaptunreDrvTest(void)//測試函數
{printf("period is %d us.\n",g_icValue);DelayNms(500);
}

capture_drv.h

#ifndef _CAPTURE_DRV_H_
#define _CAPTURE_DRV_H_void CaptureDrvInit();
void CaptunreDrvTest(void);//測試函數#endif

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/95055.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/95055.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/95055.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MyBatis 與 MyBatis-Plus 的對比與選擇

&#x1f50d; MyBatis 與 MyBatis-Plus 的對比與選擇 文章目錄&#x1f50d; MyBatis 與 MyBatis-Plus 的對比與選擇&#x1f9e0; 一、MyBatis 核心回顧&#x1f4a1; 核心思想與架構定位? 基礎使用示例?? MyBatis 的痛點? 二、MyBatis-Plus 功能特性解析&#x1f4a1; M…

大數據-湖倉一體

數據倉庫 這是一個傳統的概念了&#xff0c;趨向于結構化數據&#xff0c;簡單來說就是進過數據治理后的標準數據更易于數據分析使用&#xff0c;代價就是存儲比較昂貴了 數據湖 近些年來新出的一種概念&#xff0c;就是存儲了結構化&#xff0c;非結構化&#xff0c;半結構…

Java視覺跟蹤入門:使用OpenCV實現實時對象追蹤

視覺跟蹤是計算機視覺領域的一個重要分支&#xff0c;它允許我們在視頻序列中持續定位移動對象。本文將介紹如何使用Java和OpenCV庫來實現一個簡單的視覺跟蹤系統。什么是視覺跟蹤&#xff1f;視覺跟蹤是指通過分析視頻幀來自動追蹤一個或多個移動對象的過程。這項技術廣泛應用…

【題解 | 兩種做法】洛谷 P4208 [JSOI2008] 最小生成樹計數 [矩陣樹/枚舉]

特別難調&#xff0c;洛谷題解區很多人代碼可讀性不強&#xff0c;做的我懷疑人生。 &#xff08;雖然我的碼風也一般就是了&#xff09; 前置知識&#xff1a; Kruskal 求最小生成樹。 題面&#xff1a; 洛谷 P4208 兩種做法&#xff0c;一種矩陣樹一種枚舉。 &#xff08…

光譜相機多層鍍膜技術如何提高透過率

光譜相機多層鍍膜技術通過精密的光學設計與材料組合實現透過率提升&#xff0c;其核心原理與技術特性如下&#xff1a;一、多層鍍膜的光學優化機制?復合相位調控? 通過交替沉積高折射率&#xff08;如TiO?, n2.3&#xff09;與低折射率材料&#xff08;如SiO?, n1.46&#…

ubantu安裝配置hive

在Ubuntu系統上安裝Hive通常涉及幾個步驟&#xff0c;包括安裝Java&#xff08;因為Hive依賴于Java&#xff09;&#xff0c;安裝Hadoop&#xff0c;然后安裝Hive本身。以下是一個基本的步驟指南&#xff1a; 安裝Java 首先&#xff0c;確保你的系統上安裝了Java。你可以通過運…

大模型RAG項目實戰:文本向量模型>Embedding模型、Reranker模型以及ColBERT模型

注&#xff1a;此文章內容均節選自充電了么創始人&#xff0c;CEO兼CTO陳敬雷老師的新書《GPT多模態大模型與AI Agent智能體》&#xff08;跟我一起學人工智能&#xff09;【陳敬雷編著】【清華大學出版社】 清華《GPT多模態大模型與AI Agent智能體》書籍配套視頻課程【陳敬雷…

基于uni-app的校園綜合服務平臺開發實戰

閃遞校園&#xff1a;基于uni-app的校園綜合服務平臺開發實戰作為一名全棧開發者&#xff0c;我用6個月時間開發了這款校園綜合服務平臺——閃遞校園。本文將詳細分享項目從0到1的開發經驗&#xff0c;包括技術選型、核心功能實現、踩坑記錄以及性能優化等方面的干貨內容。&…

Qt::Q_INIT_RESOURCE用法

q_init_resource 用法 q_init_resource 是 Qt 框架中用于初始化嵌入式資源的一個函數。它通常用于將編譯到應用程序二進制文件中的資源&#xff08;如圖像、QML文件、翻譯文件等&#xff09;注冊到Qt的資源系統中。 基本用法 cpp Q_INIT_RESOURCE(resourcename); 其中 resource…

【開題答辯全過程】以 基于php的校園兼職求職網站為例,包含答辯的問題和答案

個人簡介一名14年經驗的資深畢設內行人&#xff0c;語言擅長Java、php、微信小程序、Python、Golang、安卓Android等開發項目包括大數據、深度學習、網站、小程序、安卓、算法。平常會做一些項目定制化開發、代碼講解、答辯教學、文檔編寫、也懂一些降重方面的技巧。感謝大家的…

安卓懸浮球-3566-測試報告

安卓懸浮球-3566-測試報告 測試概述 項目名稱: 懸浮球電子秤應用 測試版本: v1.0.0 測試時間: 2025年9月 測試環境: UniApp開發環境 測試類型: 功能測試、性能測試、兼容性測試 測試結果: 見附件測試環境配置 硬件環境 測試設備: Android 內置3566屏幕分辨率: 1080x1920內存: 2…

《C++進階之STL》【紅黑樹】

【紅黑樹】目錄前言&#xff1a;------------概念介紹------------1. 什么是紅黑樹&#xff1f;2. 紅黑樹的基本特性是什么&#xff1f;3. 紅黑樹的效率怎么樣&#xff1f;4. 紅黑樹如何確保最長路徑不超過最短路徑的2倍&#xff1f;------------基本操作------------一、查找操…

Java全棧工程師的實戰面試:從基礎到微服務

Java全棧工程師的實戰面試&#xff1a;從基礎到微服務 在一次真實的面試中&#xff0c;一位經驗豐富的Java全棧開發工程師被問及多個技術問題。他的名字是林浩然&#xff0c;28歲&#xff0c;擁有計算機科學與技術碩士學位&#xff0c;擁有5年的工作經驗。他曾在一家大型互聯網…

工業物聯網(IIoT)+ AI:智能工業的未來趨勢全解析

工業物聯網&#xff08;IIoT&#xff09; AI&#xff1a;智能工業的未來趨勢全解析 文章目錄工業物聯網&#xff08;IIoT&#xff09; AI&#xff1a;智能工業的未來趨勢全解析摘要什么是工業物聯網&#xff08;IIoT&#xff09;&#xff1f;1. IIoT 的定義2. IIoT 與傳統 IoT …

3000. 對角線最長的矩形的面積

3000. 對角線最長的矩形的面積 題目鏈接&#xff1a;3000. 對角線最長的矩形的面積 代碼如下&#xff1a; class Solution { public:int areaOfMaxDiagonal(vector<vector<int>>& dimensions) {double maxDiagonalLength 0;int res 0;for (vector<int&g…

Scikit-learn Python機器學習 - 什么是機器學習

鋒哥原創的Scikit-learn Python機器學習視頻教程&#xff1a; 2026版 Scikit-learn Python機器學習 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 課程介紹 本課程主要講解基于Scikit-learn的Python機器學習知識&#xff0c;包括機器學習概述&#xff0c;特征工程(數據…

Python環境搭建報錯

檢查Python版本兼容性確保下載的Python版本與操作系統匹配&#xff08;如Windows 32位/64位、macOS ARM/x86&#xff09;。可通過命令行輸入python --version或python3 --version驗證已安裝版本是否與需求一致。清理殘留文件若之前安裝失敗&#xff0c;需手動刪除殘留文件。Win…

C# WinForm中提供webapi服務

云川給我提了一個需求&#xff0c;要我開發一個API服務程序&#xff0c;他來調用&#xff0c;程序再去明道云取數&#xff0c;計算出一個結果返回。網上找到了一篇文章&#xff1a;C# 在Windform程序中搭建Webapi - 小碼哥-風云 - 博客園&#xff0c;可以使用微軟提供的Microso…

Linux中使用docker部署solr

1. 運行一次&#xff0c;然后拉取鏡像 [rootinstance-yo4hab98 ~]# docker run -d -p 8983:8983 --name solr-8.11.3 -t solr:8.11.3 ps 鏡像相關指令 # 查看鏡像 docker images# 刪除鏡像 指定名稱和版本刪除 docker rmi nginx:latest # 刪除鏡像 指定id刪除 docker rm…

代謝組學分析指南

摘要代謝組學是個新興領域&#xff0c;系統性地定量眾多代謝物。關鍵目的是識別與每種生物表型相對應的代謝物&#xff0c;并進一步分析其中涉及的機制。盡管代謝組學對于理解相關的生物學現象至關重要&#xff0c;但在全面描述過程的能力上存在局限性。推薦采用綜合分析策略&a…