新唐M031學習筆記(一)定時器基礎計數應用

先上代碼

void Hw_Timer0_Init(void)
{//20:100ms 200:10ms 2000:1ms 20000:100us 200000:10us TIMER_Open(TIMER0, TIMER_PERIODIC_MODE, 200000);/* Update prescale to set proper resolution. */TIMER_SET_PRESCALE_VALUE(TIMER0, 1);    /* Enable Timer0 interrupt */TIMER_EnableInt(TIMER0);NVIC_EnableIRQ(TMR0_IRQn);    TIMER_Start(TIMER0);
}

可以參考注釋修改TIMER_Open的參數,想設置為2 000 000 定時1us沒有成功,進hardfalt了,沒有去細細研究,后續可能會補上。有需要的可以調用官方參考代碼中的TIMER_Delay

整個工程參考代碼,這里修改了串口0的IO口為P14 P15

#include <stdio.h>
#include "NuMicro.h"
#include "hw_uart01.h"
#include "hw_timer0.h"void SYS_Init(void)
{    /* Unlock protected registers */SYS_UnlockReg();/* Enable HIRC clock (Internal RC 48MHz) */CLK_EnableXtalRC(CLK_PWRCTL_HIRCEN_Msk);/* Wait for HIRC clock ready */CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk);/* Select HCLK clock source as HIRC and HCLK source divider as 1 */CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_HIRC, CLK_CLKDIV0_HCLK(1));/* Enable UART0 clock */CLK_EnableModuleClock(UART0_MODULE);/* Switch UART0 clock source to HIRC */CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UART0SEL_HIRC, CLK_CLKDIV0_UART0(1));/* Enable IP clock */CLK_EnableModuleClock(TMR0_MODULE);/* Select IP clock source */CLK_SetModuleClock(TMR0_MODULE, CLK_CLKSEL1_TMR0SEL_HIRC, 0);/* Update System Core Clock */SystemCoreClockUpdate();/* UART0 RXD=PA.14 and TXD=PA.15 */SYS->GPA_MFPH = (SYS->GPA_MFPH & ~(SYS_GPA_MFPH_PA14MFP_Msk | SYS_GPA_MFPH_PA15MFP_Msk))|(SYS_GPA_MFPH_PA14MFP_UART0_TXD | SYS_GPA_MFPH_PA15MFP_UART0_RXD );/* Enable USCI UART interrupt */UUART_ENABLE_TRANS_INT(UUART0, UUART_INTEN_RXENDIEN_Msk);NVIC_EnableIRQ(USCI_IRQn);/* Lock protected registers */SYS_LockReg();
}int main()
{SYS_Init();/* Init UART0 to 115200-8n1 for print message */Hw_Uart0_Init();Hw_Timer0_Init();while(1){printf("Hello World\r\n");App_Func_Delay(100000);//1s}
}
#include "hw_timer0.h"
#include "NuMicro.h"
#include "stdio.h"//這里一定要加volatile
//大家可以試試不加會有什么BUG,我這里是100%復現
volatile unsigned int g_delay_time = 0;
volatile unsigned int g_delay_flag = 0;void Hw_Timer0_Init(void)
{//20:100ms 200:10ms 2000:1ms 20000:100us 200000:10us TIMER_Open(TIMER0, TIMER_PERIODIC_MODE, 200000);/* Update prescale to set proper resolution. */TIMER_SET_PRESCALE_VALUE(TIMER0, 1);/* Enable Timer0 interrupt */TIMER_EnableInt(TIMER0);NVIC_EnableIRQ(TMR0_IRQn);    TIMER_Start(TIMER0);
}void App_Func_Delay(unsigned int ms)
{g_delay_time = ms;while(0 == g_delay_flag);g_delay_flag = 0;
}void TMR0_IRQHandler(void)
{if(g_delay_time){g_delay_time--;if(0 == g_delay_time){g_delay_flag = 1;}}/* Clear interrupt flag */TIMER_ClearIntFlag(TIMER0);
}

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

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

相關文章

java三元操作符注意

/* 三元操作符的類型務必一致 */ public class proposal_3 {public static void main(String[] args) {int i80;String sString.valueOf(i<90?90:100);String s1String.valueOf(i<90?90:100.0);if(s.equals(s1))System.out.println("s和s1相等&#xff01;"…

緩解口臭可以喝一種水

河南中醫學院第一附屬醫院耳鼻喉科主任醫師梅祥勝點評&#xff1a;通常情況下&#xff0c;口臭跟脾胃濕熱有關。中醫講&#xff1a;“胃主受納&#xff0c;脾主運化&#xff1b;胃氣主降&#xff0c;使飲食物及 其糟粕得以下行&#xff0c;脾氣主升&#xff0c;則飲食物之精華得…

asp.net+mvc+easyui+sqlite 簡單用戶系統學習之旅(二)—— easyui的簡單實用

下面開始在UserManager.Web中利用easyUI構建web。 1. 先刪除自帶的controllers、models和views&#xff08;里面的shared和web.config可以保存&#xff09;下面的文件 2. 要利用easyUI&#xff0c;首先去網上下載jquery-easyui-1.3.2.zip&#xff0c;同時下載一份EasyUI-1.3.2.…

adc如何獲取周期_LOL:千玨擁有ADC最需要的位移和無敵能力,為什么沒人用她打下路?...

— 點擊藍字 關注我們 —英雄聯盟自國服上線以來&#xff0c;已經陪伴玩家走過了9個年頭&#xff0c;目前英雄聯盟中的英雄數量已經達到了151位&#xff0c;每一位都各具特色。千玨是一位深受玩家們喜愛的英雄&#xff0c;其在官方英雄的定位中&#xff0c;屬于打野英雄&#x…

航順HK32F030MF4P6 RST作GPIO SWCLK作EXTI5 SWDIO作ADC_AIN0

老習慣&#xff0c;先上代碼 void Hw_Input_Chage_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_IOMUX, ENABLE);GPIOMUX->NRST_PIN_KEY (uint32_t)(0x00005AE1); //KEY…

centos7.2下編譯安裝git

centos最新的7.2版本&#xff0c;git居然是1.8&#xff0c;而最新的git版本是2.9 差的太多了&#xff0c;何況git2.0后有大更新。于是&#xff0c;我決定編譯安裝。中間有一點小破折&#xff0c;記錄一下&#xff0c;備忘。 1&#xff0c;下載最新的源碼&#xff0c;網址&#…

java務必讓常量的值在運行期保持不變

/* 常量就是常量&#xff0c;在編譯期就必須確定其值&#xff0c;不應該在運行期更改&#xff0c;否則程序的可讀性會非常差 */public class proposal_2 {interface Const{public static final int RAND_CONSTnew Random().nextInt();}public static void main(String[] arg…

Java并發教程–信號量

這是我們將要進行的Java并發系列的第一部分。 具體來說&#xff0c;我們將深入探討Java 1.5及更高版本中內置的并發工具。 我們假設您對同步和易失性關鍵字有基本的了解。 第一篇文章將介紹信號量-特別是對信號量進行計數 。 信號量是用于限制對資源訪問的經常被誤解和使用不足…

android surfaceview 大小_Android 使用Camera2 API采集視頻數據

Android 視頻數據采集系列的最后一篇出爐了&#xff0c;和前兩篇文章想比&#xff0c;這篇文章從系統API層面進行一些探索&#xff0c;涉及到的細節更多。初次接觸 Camera2 API 會覺得它的使用有些繁瑣&#xff0c;涉及到的類有些多&#xff0c;不過就像第一次使用Activity, Fr…

java生成隨機字符串

學習java comparable特性時候&#xff0c;定義如下Student類&#xff0c;需要需要隨機添加學生姓名以及學號和成績&#xff0c;這是java如何隨機生成名字&#xff0c;根據我的查詢&#xff0c;我找到目前java庫支持兩種方法。 1. org.apache.commons.lang3.RandomStringUtils類…

使用SharedPreferenes存取數據

//使用SharedPreference存儲數據 public void on(View view){     //獲取用戶名和密碼     String nameeditText1.getText().toString();     String numbereditText2.getText().toString();     //判斷checkBox是否為勾選      CheckBox box(CheckBox…

使用Java VisualVM分析您的應用程序

當您需要發現應用程序的哪個部分消耗更多的CPU或內存時&#xff0c;必須使用探查器執行此操作。 默認情況下&#xff0c;Sun JDK中附帶的一個探查器是Java VisualVM。 這個事件探查器非常簡單易用&#xff0c;功能強大。 在這篇文章中&#xff0c;我們將看到如何安裝它并使用它…

ArcSDE for SQL Server安裝及在ArcMap中創建ArcSDE連接

ArcSDE for SQL Server安裝及在ArcMap中創建ArcSDE連接 原文:ArcSDE for SQL Server安裝及在ArcMap中創建ArcSDE連接安裝ArcSDE for SQL Server&#xff0c;最后一步成功后的界面如下&#xff1a;在ArcMap中創建ArcSDE連接&#xff0c;截圖如下&#xff1a;posted on 2016-08-0…

java反射main方法參數注意

public class ReflectMethodMain {public static void main(String[] args) throws Exception {Method methodMainTestArgument.class.getMethod("main", String[].class);/*jdk 1.4之前的版本不支持可變參數&#xff0c;對組類的參數會自動拆包然后用來匹配數據參數…

python調用c函數傳字符串參數_Python使用ctypes模塊調用DLL函數之傳遞數值、指針與字符串參數...

在Python語言中&#xff0c;可以使用ctypes模塊調用其它如C語言編寫的動態鏈接庫DLL文件中的函數&#xff0c;在提高軟件運行效率的同時&#xff0c;也可以充分利用目前市面上各種第三方的DLL庫函數&#xff0c;以擴充Python軟件的功能及應用領域&#xff0c;減少重復編寫代碼、…

沁恒CH554 KEIL環境搭建

首先下載WCHISPTool_Setup.exe http://www.wch.cn/products/CH554.html 123這三個可下載的都下吧&#xff0c;后面開發都要用的 安裝好后運行&#xff0c;菜單欄上&#xff0c;功能->添加WCH MCU到KEIL器件庫 這時候在KEIL安裝目錄里面的UV4文件夾下可以看到wch.cdb的文件…

【CV論文閱讀】Rank Pooling for Action Recognition

這是期刊論文的版本&#xff0c;不是會議論文的版本。看了論文之后&#xff0c;只能說&#xff0c;太TM聰明了。膜拜~~ 視頻的表示方法有很多&#xff0c;一般是把它看作幀的序列。論文提出一種新的方法去表示視頻&#xff0c;用ranking function的參數編碼視頻的幀序列。它使用…

java不要在常量和變量中出現易混淆的字母

public class proposal {public static void main(String[] args) {long i1l; System.out.println("i的兩倍是&#xff1a;"(ii));System.out.println("i的兩倍是&#xff1a;"ii); //注意此處和上面的有很大的區別} }輸出&#xff1a;211/** 注意:* …

VS2019 WPF制作OTA上位機(一)新建工程

首先創建新項目&#xff0c;文件 -> 新建 -> 項目 下拉菜單選擇C#和Window&#xff0c;選擇WPF應用程序&#xff0c;下一步 輸入項目名&#xff0c;下一步 這里選擇.NET 5.0&#xff0c;也可以選擇其他的&#xff0c;個人習慣.NET&#xff0c;點擊創建 這時候出現初始…

戶籍恢復需要體檢嗎_腦梗死后腳麻能恢復嗎?需要多久能恢復呢?

腦梗死之后腳部麻木&#xff0c;這個有一部分是能夠恢復的&#xff0c;但是相對而言&#xff0c;恢復的時間比較長&#xff0c;在臨床當中出現腳麻主要是因為梗死破壞了患者的感覺神經中樞從而造成。腳部感覺麻木&#xff0c;瘙癢或者是有螞蟻在上面爬的感覺。而且有的更加嚴重…