添加一些关于midi播放的项目

This commit is contained in:
terryLP
2025-03-24 14:30:56 +08:00
parent e31eb22077
commit 498b4ef13b
699 changed files with 186162 additions and 1 deletions
@@ -0,0 +1,117 @@
/******************************************************************************
*
* NOTE:系统所使用的一些宏定义,以及时钟模式的选择。
*
******************************************************************************/
#ifndef _NVxx_CONFIG_H_
#define _NVxx_CONFIG_H_
#include <stdint.h>
#define CPU_NV32
#define TEST
//#define TRIM_IRC /*!< 是否使用定义的TRIM值来校准内部IRC,若注释则使用出厂校准的TRIM值出厂校准至31.25K-1280倍频->40M */ //Modify
#define SPI0_PINREMAP /*!< SPI0的管脚映射定义 */
#define ENABLE_WDOG /*!< 禁用看门狗,但允许其更新 */
#define DISABLE_NMI /*!< 禁用NMI中断输入引脚-PB4,该引脚建议布板外接4.7K-10K的上拉,以及上电时该引脚不可为低(若不使用NMI功能)*/
/*! 定义是否打印系统信息 */
#define PRINT_SYS_LOG
//#define OUTPUT_BUSCLK /*!< 定义是否输出系统时钟,输出引脚为PH2 */
#define ICS_TRIM_VALUE 0x50
/*****************************************************************************
*
* 根据所选的时钟模式,及时钟分频系数确定最终的总线时钟BUSCLK和系统/内核时钟ICSOUT
* FEI模式:内核/系统时钟=IRC*1280/BDIV :总线时钟=IRC*1280/BDIV/BUSDIV
* FEE模式:内核/系统时钟=晶振/RDIV*1280/BDIV :总线时钟=晶振/RDIV*1280/BDIV/BUSDIV
* 其他时钟模式频率的计算请参考:库函数说明及参考手册ICS部分
*
******************************************************************************/
/*! 定义时钟的时钟模式以及频率 */
//#define USE_FEE /*!< 使用外部时钟FEE模式 */
//#define USE_FEE_OSC /*!< 使用外部时钟输入OSC模式 */
#define USE_FEI /*!< 使用系统内部时钟作为主频 */
//#define USE_FBELP
//#define USE_FBE_OSC
/*! 定义BDIV分频系数 (BDIV) */
/*
* BDIV_ENCODE 0 1 2 3 4 5 6 7
*
* BDIV分频系数: 1 2 4 8 16 32 64 128
*/
#define BDIV_ENCODE 0 /*!< BDIV分频系数为1 */
/*! 定义BUSDIV分频系数(BUSDIV) */
/*
* BUSDIV_ENCODE 0 1
*
* BUSCLK=ICSOUT/x 1 2
*/
//此处建议不要修改,即系统/内核时钟=总线时钟
#define BUSDIV_ENCODE 0 /*总线时钟=ICSOUT/1*/
/*! 若使用外部晶振,则需要定义外部晶振频率. */
//#define EXT_CLK_FREQ_KHZ 32 /* in KHz */
//#define EXT_CLK_FREQ_KHZ 4000 /* in KHz */
//#define EXT_CLK_FREQ_KHZ 8000 /* in KHz */
#define EXT_CLK_FREQ_KHZ 10000 /* in KHz */
//#define EXT_CLK_FREQ_KHZ 16000 /* in KHz */
//#define EXT_CLK_FREQ_KHZ 20000 /* in KHz */
//例:使用FEI模式: 内核时钟/系统时钟 = ICSOUT=31.25K*1280/1=40M 总线时钟 = BUSCLK = ICSOUT/1 = 40M
/* 定义总线时钟主频 */
//一、前提:若定义使用FEI内部时钟
#if defined(USE_FEI)
#define BUS_CLK_HZ 40000000L //#define BDIV_ENCODE 0 /*BDIV分频系数为1*/
//#define BUS_CLK_HZ 20000000L //#define BDIV_ENCODE 1 /*BDIV分频系数为2*/
//#define BUS_CLK_HZ 10000000L //#define BDIV_ENCODE 2 /*BDIV分频系数为4*/
//二、前提:若定义使用外部时钟的模式,以下情况为使用通用FEE模式,关于其他模式的使用参见手册及库函数说明
#elif (EXT_CLK_FREQ_KHZ == 10000)
#define BUS_CLK_HZ 25000000L //#define BDIV_ENCODE 1 /*BDIV分频系数为2*/ //NV32F100x的主频需在40M以内
#elif (EXT_CLK_FREQ_KHZ == 16000)
#define BUS_CLK_HZ 25000000L //#define BDIV_ENCODE 1 /*BDIV分频系数为2*/ //NV32F100x的主频需在40M以内
#elif (EXT_CLK_FREQ_KHZ == 8000)
#define BUS_CLK_HZ 40000000L //#define BDIV_ENCODE 0 /*BDIV分频系数为1*/
//#define BUS_CLK_HZ 20000000L //#define BDIV_ENCODE 1 /*BDIV分频系数为2*/
#elif (EXT_CLK_FREQ_KHZ == 4000)
#define BUS_CLK_HZ 40000000L //#define BDIV_ENCODE 0 /*BDIV分频系数为1*/
//#define BUS_CLK_HZ 20000000L //#define BDIV_ENCODE 1 /*BDIV分频系数为2*/
#elif (EXT_CLK_FREQ_KHZ == 32)
#define BUS_CLK_HZ 16777216L
//三、定义了其他模式
#else
#define BUS_CLK_HZ 40000000L
#endif
/*! 定义所使用UART口的波特率 */
#define UART_PRINT_BITRATE 115200 /*! UART波特率 */
/*! 定义所使用的UART口 */
#define TERM_PORT UART1 /*!< 定义使用UART1口,开发板上默认使用UART1口 */
/*! 板载LED */
#define LED0_Init() GPIOB->PDDR |= (1<<25) //初始化
#define LED0_Toggle() GPIOB->PTOR = (1<<25) //翻转
#define LED0_On() GPIOB->PCOR = (1<<25) //置位
#define LED0_Off() GPIOB->PSOR = (1<<25) //清零
#define LED1_Init() GPIOB->PDDR |= (1<<26)
#define LED1_Toggle() GPIOB->PTOR = (1<<26)
#define LED1_On() GPIOB->PCOR = (1<<26)
#define LED1_Off() GPIOB->PSOR = (1<<26)
#define LED2_Init() GPIOB->PDDR |= (1<<7)
#define LED2_Toggle() GPIOB->PTOR = (1<<7)
#define LED2_On() GPIOB->PCOR = (1<<7)
#define LED2_Off() GPIOB->PSOR = (1<<7)
#endif /* NVxx_CONFIG_H_ */