先上代码

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);
}

新唐M031学习笔记(一)定时器基础计数应用相关推荐

  1. 新唐芯片学习笔记——概要

    ##新唐芯片学习笔记--概要 特性 编号信息列表与管脚定义 NuMicroNUC029 命名规则 特性 ARM®Cortex®-M0 内核 – 运行频率可达50MHz – 一个 24位系统定时器 – ...

  2. 新唐芯片学习笔记——UART

    新唐芯片学习笔记--UART 概述 NuMicro®NUC029 提供2个通用异步收/发器(UART)通道,UART支持普通速度UART,并支持流控制.UART控制器对从外设收到的数据执行串到并的转换 ...

  3. 新唐芯片学习笔记——GPIO

    新唐芯片学习笔记--GPIO 概述 NuMicro®NUC029 最多有40个通用I/O引脚,这些引脚和其它功能共享.40个引脚分为6个端口,分别命名为P0, P1, P2, P3, P4和P5,每个 ...

  4. 新唐芯片学习笔记——ADC

    新唐芯片学习笔记--ADC 概述 NuMicro®NUC029xAN 包含一个12位逐次逼近型模数转换器(SAR A/D转换器) ,包含8个输入通道:NuMicro®NUC029FAE 包含一个10位 ...

  5. 前端学习笔记(js基础知识)

    前端学习笔记(js基础知识) JavaScript 输出 JavaScript 数据类型 常见的HTML事件 DOM 冒泡与捕获 流程控制语句 for..in 计时器 let,var,const的区别 ...

  6. JavaScript学习笔记02【基础——对象(Function、Array、Date、Math)】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  7. 菜鸟学习笔记:Java基础篇6(数组、字符串)

    菜鸟学习笔记:Java常用类(数组.字符串) 数组 概述 数组的定义 二维数组 数组查找和排序 查找 排序 数组运用--字符串 不可变字符序列(String) 可变字符序列(StringBuilder ...

  8. 菜鸟学习笔记:Java基础篇4(面向对象三大特征)

    菜鸟学习笔记:Java面向对象篇中 继承 概念 方法重写(override) Object类 Super关键字 组合 final关键字补充 封装 访问控制符 多态 继承 概念 继续上一篇的例子: #m ...

  9. Golang学习笔记之GORM基础使用(二)

    本文章主要学习GORM的增删查改.若还没有完成数据库和数据表的创建.定义模型以及数据库的连接请先学习本本专栏文章Golang学习笔记之GORM基础使用(一).本文为学习笔记,通过GORM官方中文文档和 ...

最新文章

  1. LeetCode简单题之找到所有数组中消失的数字
  2. 使用母版页后出现控件,使用FindControl找不到指定控件
  3. PHP curl 实现RESTful PUT DELETE 实例
  4. python-------装饰器
  5. GPD电脑安装linux,怕虚拟机影响性能?GPD pocket 2 安装 Ubuntu 体验
  6. laravel 记录sql语句
  7. 2012服务器系统安装iis,Windows Server 2012服务器管理系统安装配置IIS8.5教程
  8. pe_xscan作了3点更新
  9. AllWinner board 笔记
  10. APK反编译工具使用教程
  11. 计算机显示器闪烁,电脑显示器闪屏怎么办 显示器闪屏原因【解决方法】
  12. 推荐一个微软知识库(Microsoft Knowledge Base)订阅
  13. linux普通用户密码到期修改为原密码方法
  14. 春赏百花秋望月,夏沐凉风冬听雪
  15. 复利计算器app发布
  16. 基于PHP+MySQL长途客用汽车票订票系统的设计与实现
  17. 【一起学Rust | 框架篇 | Viz框架】轻量级 Web 框架——Viz
  18. smart gesture安装失败_从安装到打印HP 108w操作详解
  19. 数据科学家技能树(中文翻译版)
  20. python输入生日输出生肖_用Python输入年月日 输出X年X月X日生肖是XX,xx岁的XX星座...

热门文章

  1. mysql 5.5.41 下载_MySQL 5.5.41/5.6.22 发布下载
  2. vbs关不掉的计算机窗口,恶搞之关不掉的窗口.vbs脚本
  3. matlab导入txt生成曲面,求助:怎样将txt的数据导入到Matlab中并根据参数画出波形...
  4. dnslog盲注原理
  5. 通过暴露出来的OA和github信息拿Shell
  6. DM达梦创建表空间用户
  7. 课时53.video标签(掌握)
  8. Java基础笔记之数据类型
  9. maven编译的时候排除junit测试类
  10. 7-12(图) 社交网络图中结点的“重要性”计算(30 分)