This commit is contained in:
qiyongshuang
2024-02-26 13:22:09 +08:00
parent 0ad592325e
commit 9596a13c17
573 changed files with 36301 additions and 23003 deletions
@@ -0,0 +1,137 @@
/********************************** (C) COPYRIGHT *******************************
* File Name : app.h
* Author : WCH
* Version : V1.1
* Date : 2021/11/18
* Description :
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/
#ifndef app_H
#define app_H
#ifdef __cplusplus
extern "C" {
#endif
/******************************************************************************/
#define APP_NODE_EVT (1 << 0)
#define APP_NODE_TEST_EVT (1 << 1)
#define APP_DELETE_NODE_TIMEOUT_EVT (1 << 2)
#define CMD_DELETE_NODE 0xA2
#define CMD_DELETE_NODE_ACK 0x82
#define PERIPHERAL_CMD_LEN 1
#define ADDRESS_LEN 2
// 删除节点命令,包含 1字节命令码+2字节需要删除的节点地址
#define DELETE_NODE_DATA_LEN (PERIPHERAL_CMD_LEN + ADDRESS_LEN)
// 删除节点命令应答,包含 1字节命令码
#define DELETE_NODE_ACK_DATA_LEN (PERIPHERAL_CMD_LEN)
/******************************************************************************/
/**
* @brief 远端节点配置流程状态
*/
typedef enum
{
NODE_INIT = 0,
NODE_APPKEY_ADD = 1,
NODE_MOD_BIND_SET = 2,
NODE_MOD_SUB_SET = 3,
NODE_CONFIGURATIONED = 4,
} node_stage_t;
/**
* @brief 本地节点配置流程状态
*/
typedef enum
{
LOCAL_INIT = 0,
LOCAL_APPKEY_ADD = 1,
LOCAL_MOD_BIND_SET = 2,
LOCAL_CONFIGURATIONED = 4,
} local_stage_t;
/**
* @brief 节点配置流程组合体
*/
typedef union
{
node_stage_t node;
local_stage_t local;
} stage_t;
typedef void (*cfg_rsp_handler_t)(void *node, const void *rsp);
typedef BOOL (*stage_handler_t)(void *node);
/**
* @brief 节点配置流程回调
*/
typedef struct
{
cfg_rsp_handler_t rsp;
stage_handler_t stage;
} cfg_cb_t;
/**
* @brief 配置节点的结构体
*/
typedef struct
{
uint16_t node_addr;
uint16_t elem_count;
uint16_t net_idx;
uint16_t retry_cnt : 12,
fixed : 1,
blocked : 1;
stage_t stage;
const cfg_cb_t *cb;
} node_t;
typedef union
{
struct
{
uint8_t cmd; /* 命令码 CMD_DELETE_NODE */
uint8_t addr[ADDRESS_LEN]; /* 擦除地址 */
} delete_node; /* 删除节点命令 */
struct
{
uint8_t cmd; /* 命令码 CMD_DELETE_NODE_ACK */
} delete_node_ack; /* 删除节点命令应答 */
struct
{
uint8_t buf[20]; /* 接收数据包*/
} data;
}app_mesh_manage_t;
extern node_t app_nodes[1 + CONFIG_MESH_PROV_NODE_COUNT_DEF];
extern const uint16_t self_prov_net_idx;
extern const uint16_t self_prov_app_idx;
extern const uint32_t self_prov_iv_index;
extern const uint16_t self_prov_addr;
/**
* @brief 应用层初始化
*/
void App_Init(void);
/******************************************************************************/
/******************************************************************************/
#ifdef __cplusplus
}
#endif
#endif
@@ -0,0 +1,219 @@
/********************************** (C) COPYRIGHT *******************************
* File Name : app_mesh_config.h
* Author : WCH
* Version : V1.1
* Date : 2021/11/18
* Description :
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/
#ifndef APP_MESH_CONFIG_H
#define APP_MESH_CONFIG_H
#ifdef __cplusplus
extern "C" {
#endif
/**************************功能配置,建议直接参考不同例程*****************************/
// relay功能
#define CONFIG_BLE_MESH_RELAY 1
// 代理功能
#define CONFIG_BLE_MESH_PROXY 0
// GATT层配网功能
#define CONFIG_BLE_MESH_PB_GATT 0
// FLASH存储功能
#define CONFIG_BLE_MESH_SETTINGS 1
// 朋友节点功能
#define CONFIG_BLE_MESH_FRIEND 0
// 低功耗节点功能
#define CONFIG_BLE_MESH_LOW_POWER 0
// config模型客户端功能
#define CONFIG_BLE_MESH_CFG_CLI 1
// health模型客户端功能
#define CONFIG_BLE_MESH_HLTH_CLI 1
/************************************参数配置******************************************/
// Net数据缓存个数
#define CONFIG_MESH_ADV_BUF_COUNT_MIN (6)
#define CONFIG_MESH_ADV_BUF_COUNT_DEF (10)
#define CONFIG_MESH_ADV_BUF_COUNT_MAX (256)
// RPL数据缓存个数,需不小于配网发起者支持的配网设备节点个数
#define CONFIG_MESH_RPL_COUNT_MIN (6)
#define CONFIG_MESH_RPL_COUNT_DEF (40)
#define CONFIG_MESH_RPL_COUNT_MAX (128)
// RPL缓存循环使用,开启后网络中节点数量不受RPL限制,但NVS将不存储RPL数据
#define CONFIG_MESH_ALLOW_RPL_CYCLE (FALSE)
// IV Update State Timer 基于96H的分频系数
#define CONFIG_MESH_IVU_DIVIDER_MIN (1)
#define CONFIG_MESH_IVU_DIVIDER_DEF (96)
#define CONFIG_MESH_IVU_DIVIDER_MAX (96)
// 代理黑白名单功能存储个数
#define CONFIG_MESH_PROXY_FILTER_MIN (2)
#define CONFIG_MESH_PROXY_FILTER_DEF (5)
#define CONFIG_MESH_PROXY_FILTER_MAX (20)
// 消息贮存个数
#define CONFIG_MESH_MSG_CACHE_MIN (3)
#define CONFIG_MESH_MSG_CACHE_DEF (20)
#define CONFIG_MESH_MSG_CACHE_MAX (20)
// 子网络个数
#define CONFIG_MESH_SUBNET_COUNT_MIN (1)
#define CONFIG_MESH_SUBNET_COUNT_DEF (1)
#define CONFIG_MESH_SUBNET_COUNT_MAX (4)
// APP key个数
#define CONFIG_MESH_APPKEY_COUNT_MIN (1)
#define CONFIG_MESH_APPKEY_COUNT_DEF (3)
#define CONFIG_MESH_APPKEY_COUNT_MAX (5)
// 可存储的模型密钥数量
#define CONFIG_MESH_MOD_KEY_COUNT_MIN (1)
#define CONFIG_MESH_MOD_KEY_COUNT_DEF (1)
#define CONFIG_MESH_MOD_KEY_COUNT_MAX (3)
// 可存储的订阅地址数量
#define CONFIG_MESH_MOD_GROUP_COUNT_MIN (1)
#define CONFIG_MESH_MOD_GROUP_COUNT_DEF (6)
#define CONFIG_MESH_MOD_GROUP_COUNT_MAX (64)
// 是否允许一个网络中存在同地址的节点(使能后分包功能不可用)
#define CONFIG_MESH_ALLOW_SAME_ADDR (FALSE)
// 不分包消息支持的长度(超过此长度则需要分包,默认值为7,注意同网络里所有设备配置需统一)
#define CONFIG_MESH_UNSEG_LENGTH_MIN (7)
#define CONFIG_MESH_UNSEG_LENGTH_DEF (221)
#define CONFIG_MESH_UNSEG_LENGTH_MAX (221)
// 每个消息的最大分包数
#define CONFIG_MESH_TX_SEG_MIN (2)
#define CONFIG_MESH_TX_SEG_DEF (8)
#define CONFIG_MESH_TX_SEG_MAX (32)
// 允许同时存在的分包消息的最大发送个数
#define CONFIG_MESH_TX_SEG_COUNT_MIN (1)
#define CONFIG_MESH_TX_SEG_COUNT_DEF (2)
#define CONFIG_MESH_TX_SEG_COUNT_MAX (4)
// 允许同时存在的分包消息的最大接收个数
#define CONFIG_MESH_RX_SEG_COUNT_MIN (1)
#define CONFIG_MESH_RX_SEG_COUNT_DEF (2)
#define CONFIG_MESH_RX_SEG_COUNT_MAX (4)
// 每个接收的分包消息的最大字节数
#define CONFIG_MESH_RX_SDU_MIN (12)
#define CONFIG_MESH_RX_SDU_DEF (192)
#define CONFIG_MESH_RX_SDU_MAX (384)
// 虚拟地址个数
#define CONFIG_MESH_LABEL_COUNT_MIN (1)
#define CONFIG_MESH_LABEL_COUNT_DEF (2)
#define CONFIG_MESH_LABEL_COUNT_MAX (4)
// NVS存储使用扇区个数
#define CONFIG_MESH_SECTOR_COUNT_MIN (2)
#define CONFIG_MESH_SECTOR_COUNT_DEF (3)
// NVS存储扇区大小
#define CONFIG_MESH_SECTOR_SIZE_DEF (4096)
// NVS存储首地址
#define CONFIG_MESH_NVS_ADDR_DEF (448*1024+0x08000000)
// RPL更新超过多少次后存储
#define CONFIG_MESH_RPL_STORE_RATE_MIN (5)
#define CONFIG_MESH_RPL_STORE_RATE_DEF (60)
#define CONFIG_MESH_RPL_STORE_RATE_MAX (3600)
// SEQ更新超过多少次后存储
#define CONFIG_MESH_SEQ_STORE_RATE_MIN (5)
#define CONFIG_MESH_SEQ_STORE_RATE_DEF (60)
#define CONFIG_MESH_SEQ_STORE_RATE_MAX (3600)
// 其他信息更新后存储的超时时长(s)
#define CONFIG_MESH_STORE_RATE_MIN (2)
#define CONFIG_MESH_STORE_RATE_DEF (2)
#define CONFIG_MESH_STORE_RATE_MAX (5)
// 朋友节点支持的每个消息的分包个数
#define CONFIG_MESH_FRIEND_SEG_RX_COUNT_MIN (1)
#define CONFIG_MESH_FRIEND_SEG_RX_COUNT_DEF (2)
#define CONFIG_MESH_FRIEND_SEG_RX_COUNT_MAX (4)
// 朋友节点支持的订阅个数
#define CONFIG_MESH_FRIEND_SUB_SIZE_MIN (1)
#define CONFIG_MESH_FRIEND_SUB_SIZE_DEF (4)
#define CONFIG_MESH_FRIEND_SUB_SIZE_MAX (8)
// 朋友节点支持的低功耗节点个数
#define CONFIG_MESH_FRIEND_LPN_COUNT_MIN (1)
#define CONFIG_MESH_FRIEND_LPN_COUNT_DEF (1)
#define CONFIG_MESH_FRIEND_LPN_COUNT_MAX (4)
// 朋友节点存储的消息队列大小
#define CONFIG_MESH_QUEUE_SIZE_MIN (2)
#define CONFIG_MESH_QUEUE_SIZE_DEF (4)
#define CONFIG_MESH_QUEUE_SIZE_MAX (30)
// 朋友节点接收窗口大小(ms)
#define CONFIG_MESH_FRIEND_RECV_WIN_MIN (1)
#define CONFIG_MESH_FRIEND_RECV_WIN_DEF (30)
#define CONFIG_MESH_FRIEND_RECV_WIN_MAX (255)
// 低功耗节点的请求消息队列大小(log2(N)),例配置为4,则大小为2^4=16
#define CONFIG_MESH_LPN_REQ_QUEUE_SIZE_MIN (2)
#define CONFIG_MESH_LPN_REQ_QUEUE_SIZE_DEF (2)
#define CONFIG_MESH_LPN_REQ_QUEUE_SIZE_MAX (4)
// 低功耗节点的请求消息间隔(100ms)
#define CONFIG_MESH_LPN_POLLINTERVAL_MIN (1)
#define CONFIG_MESH_LPN_POLLINTERVAL_DEF (80)
#define CONFIG_MESH_LPN_POLLINTERVAL_MAX (3455999)
// 低功耗节点的请求消息超时时长(100ms)
#define CONFIG_MESH_LPN_POLLTIMEOUT_MIN (10)
#define CONFIG_MESH_LPN_POLLTIMEOUT_DEF (300)
#define CONFIG_MESH_LPN_POLLTIMEOUT_MAX (3455999)
// 低功耗节点支持的接收延迟(ms)
#define CONFIG_MESH_LPN_RECV_DELAY_MIN (10)
#define CONFIG_MESH_LPN_RECV_DELAY_DEF (100)
#define CONFIG_MESH_LPN_RECV_DELAY_MAX (255)
// 朋友关系重建等待时长(s)
#define CONFIG_MESH_RETRY_TIMEOUT_MIN (3)
#define CONFIG_MESH_RETRY_TIMEOUT_DEF (10)
#define CONFIG_MESH_RETRY_TIMEOUT_MAX (60)
// 配网发起者支持的配网设备节点个数
#define CONFIG_MESH_PROV_NODE_COUNT_DEF (40)
// ADV_RF配置
#define CONFIG_MESH_RF_ACCESSADDRESS (0x8E89BED6)
#define CONFIG_MESH_RF_CHANNEL_37 (37)
#define CONFIG_MESH_RF_CHANNEL_38 (38)
#define CONFIG_MESH_RF_CHANNEL_39 (39)
#define APP_DBG(X...) \
if(1) \
{ \
PRINT("APP_DBG %s> ", __FUNCTION__); \
PRINT(X); \
PRINT("\n"); \
}
/******************************************************************************/
#ifdef __cplusplus
}
#endif
#endif
@@ -0,0 +1,161 @@
/********************************** (C) COPYRIGHT *******************************
* File Name : app_generic_onoff_model_cli.h
* Author : WCH
* Version : V1.1
* Date : 2021/11/18
* Description :
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/
#ifndef app_generic_onoff_model_cli_H
#define app_generic_onoff_model_cli_H
#ifdef __cplusplus
extern "C" {
#endif
#include "app_vendor_model_srv.h"
#define CID_WCH 0x07D7
#define OP_VENDOR_MESSAGE_TRANSPARENT_CFM BLE_MESH_MODEL_OP_3(0xCB, CID_WCH)
#define OP_VENDOR_MESSAGE_TRANSPARENT_WRT BLE_MESH_MODEL_OP_3(0xCC, CID_WCH)
#define OP_VENDOR_MESSAGE_TRANSPARENT_ACK BLE_MESH_MODEL_OP_3(0xCD, CID_WCH)
#define OP_VENDOR_MESSAGE_TRANSPARENT_IND BLE_MESH_MODEL_OP_3(0xCE, CID_WCH)
#define OP_VENDOR_MESSAGE_TRANSPARENT_MSG BLE_MESH_MODEL_OP_3(0xCF, CID_WCH)
#define BLE_MESH_MODEL_ID_WCH_SRV 0x0000
#define BLE_MESH_MODEL_ID_WCH_CLI 0x0001
#define VENDOR_MODEL_CLI_TRANS_EVT (1 << 0)
#define VENDOR_MODEL_CLI_RSP_TIMEOUT_EVT (1 << 1)
#define VENDOR_MODEL_CLI_WRITE_EVT (1 << 2)
/**
* @brief indicate 回调结构体
*/
struct bt_mesh_vendor_model_ind
{
uint8_t *pdata;
uint16_t len;
uint16_t addr;
};
/**
* @brief trans 回调结构体
*/
struct bt_mesh_vendor_model_cli_trans
{
uint8_t *pdata;
uint16_t len;
uint16_t addr;
};
/**
* @brief Client event header
*/
struct vendor_model_cli_EventHdr
{
uint8_t status;
uint32_t opcode;
};
/**
* @brief Client event union
*/
union vendor_model_cli_Event_t
{
struct bt_mesh_vendor_model_cli_trans trans;
struct bt_mesh_vendor_model_ind ind;
};
/**
* @brief Client event struct
*/
typedef struct
{
struct vendor_model_cli_EventHdr vendor_model_cli_Hdr;
union vendor_model_cli_Event_t vendor_model_cli_Event;
} vendor_model_cli_status_t;
typedef void (*vendor_model_cli_rsp_handler_t)(const vendor_model_cli_status_t *val);
/**
* @brief 记录当前发送数据包的tid
*/
struct vendor_model_cli_tid
{
uint8_t trans_tid;
uint16_t trans_addr;
uint8_t ind_tid;
uint16_t ind_addr;
};
/**
* @brief Mesh vendor_model_cli Model Context
*/
struct bt_mesh_vendor_model_cli
{
struct bt_mesh_model *model;
uint32_t op_req;
uint32_t op_pending;
struct vendor_model_cli_tid cli_tid;
vendor_model_cli_rsp_handler_t handler;
};
extern const struct bt_mesh_model_op vnd_model_cli_op[];
extern const struct bt_mesh_model_cb bt_mesh_vendor_model_cli_cb;
/**
* @brief send_trans,透传数据通道
*
* @param param - 发送参数.
* @param pData - 数据指针.
* @param len - 数据长度,最大为(APP_MAX_TX_SIZE).
*
* @return 参考Global_Error_Code
*/
int vendor_message_cli_send_trans(struct send_param *param, uint8_t *pData, uint16_t len);
/**
* @brief write,有应答传输数据通道
*
* @param param - 发送参数.
* @param pData - 数据指针.
* @param len - 数据长度,最大为(APP_MAX_TX_SIZE).
*
* @return 参考Global_Error_Code
*/
int vendor_message_cli_write(struct send_param *param, uint8_t *pData, uint16_t len);
/**
* @brief TID selection method
*
* @return TID
*/
uint8_t vendor_cli_tid_get(void);
/**
* @brief 复位厂商模型服务,取消所有正在发送的流程
*/
void vendor_message_cli_trans_reset(void);
/**
* @brief 厂商模型初始化
*
* @param model - 指向厂商模型结构体
*
* @return always SUCCESS
*/
int vendor_model_cli_init(struct bt_mesh_model *model);
#ifdef __cplusplus
}
#endif
#endif
@@ -0,0 +1,232 @@
/********************************** (C) COPYRIGHT *******************************
* File Name : app_vendor_model_srv.h
* Author : WCH
* Version : V1.1
* Date : 2021/11/18
* Description :
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/
#ifndef app_vendor_model_srv_H
#define app_vendor_model_srv_H
#ifdef __cplusplus
extern "C" {
#endif
#include "MESH_LIB.h"
#define MSG_PIN GPIO_Pin_14
#define MSG_PCENR RCC_APB2Periph_GPIOB
#define MSG_GPIO GPIOB
#define CID_WCH 0x07D7
#define OP_VENDOR_MESSAGE_TRANSPARENT_CFM BLE_MESH_MODEL_OP_3(0xCB, CID_WCH)
#define OP_VENDOR_MESSAGE_TRANSPARENT_WRT BLE_MESH_MODEL_OP_3(0xCC, CID_WCH)
#define OP_VENDOR_MESSAGE_TRANSPARENT_ACK BLE_MESH_MODEL_OP_3(0xCD, CID_WCH)
#define OP_VENDOR_MESSAGE_TRANSPARENT_IND BLE_MESH_MODEL_OP_3(0xCE, CID_WCH)
#define OP_VENDOR_MESSAGE_TRANSPARENT_MSG BLE_MESH_MODEL_OP_3(0xCF, CID_WCH)
#define BLE_MESH_MODEL_ID_WCH_SRV 0x0000
#define BLE_MESH_MODEL_ID_WCH_CLI 0x0001
#define VENDOR_MODEL_SRV_TRANS_EVT (1 << 0)
#define VENDOR_MODEL_SRV_RSP_TIMEOUT_EVT (1 << 1)
#define VENDOR_MODEL_SRV_INDICATE_EVT (1 << 2)
/**
* @brief 发送数据的开始和结束回调函数定义
*/
struct bt_adv_trans_cb
{
void (*start)(int err, void *cb_data);
void (*end)(int err, void *cb_data);
};
/**
* @brief 发送参数结构体
*/
struct send_param
{
uint16_t net_idx;
uint16_t app_idx;
uint16_t addr;
uint8_t tid;
uint8_t trans_cnt;
int32_t period;
int32_t rand;
uint8_t send_ttl;
void *cb_data;
const struct bt_adv_trans_cb *cb;
};
/**
* @brief indicate 发送缓存
*/
struct bt_mesh_indicate
{
struct send_param param;
struct net_buf *buf;
};
/**
* @brief trans 发送缓存
*/
struct bt_mesh_trans
{
struct send_param param;
struct net_buf *buf;
};
/**
* @brief write 发送缓存
*/
struct bt_mesh_write
{
struct send_param param;
struct net_buf *buf;
};
/**
* @brief write 回调结构体
*/
struct bt_mesh_vendor_model_write
{
uint8_t *pdata;
uint16_t len;
uint16_t addr;
};
/**
* @brief srv_trans 回调结构体
*/
struct bt_mesh_vendor_model_srv_trans
{
uint8_t *pdata;
uint16_t len;
uint16_t addr;
};
/**
* @brief Event header
*/
struct vendor_model_srv_EventHdr
{
uint8_t status;
uint32_t opcode;
};
/**
* @brief Server event union
*/
union vendor_model_srv_Event_t
{
struct bt_mesh_vendor_model_srv_trans trans;
struct bt_mesh_vendor_model_write write;
};
/**
* @brief Server event struct
*/
typedef struct
{
struct vendor_model_srv_EventHdr vendor_model_srv_Hdr;
union vendor_model_srv_Event_t vendor_model_srv_Event;
} vendor_model_srv_status_t;
typedef void (*vendor_model_srv_rsp_handler_t)(const vendor_model_srv_status_t *val);
/**
* @brief 记录当前发送数据包的tid
*/
struct vendor_model_srv_tid
{
uint8_t trans_tid;
uint16_t trans_addr;
uint8_t write_tid;
uint16_t write_addr;
};
/**
* @brief Mesh vendor_model_srv Model Context
*/
struct bt_mesh_vendor_model_srv
{
struct bt_mesh_model *model;
uint32_t op_req;
uint32_t op_pending;
struct vendor_model_srv_tid srv_tid;
vendor_model_srv_rsp_handler_t handler;
};
extern const struct bt_mesh_model_cb bt_mesh_vendor_model_srv_cb;
extern const struct bt_mesh_model_op vnd_model_srv_op[];
/**
* @brief 读取led状态
*
* @param led_pin - 引脚
*
* @return led状态
*/
BOOL read_led_state(uint32_t led_pin);
/**
* @brief 设置led状态
*
* @param led_pin - 引脚
* @param on - 状态
*/
void set_led_state(uint32_t led_pin, BOOL on);
/**
* @brief 翻转led状态
*
* @param led_pin - 引脚
*/
void toggle_led_state(uint32_t led_pin);
/**
* @brief indicate,有应答传输数据通道
*
* @param param - 发送参数.
* @param pData - 数据指针.
* @param len - 数据长度,最大为(APP_MAX_TX_SIZE).
*
* @return 参考Global_Error_Code
*/
int vendor_message_srv_indicate(struct send_param *param, uint8_t *pData, uint16_t len);
/**
* @brief send_trans,透传数据通道
*
* @param param - 发送参数.
* @param pData - 数据指针.
* @param len - 数据长度,最大为(APP_MAX_TX_SIZE).
*
* @return 参考Global_Error_Code
*/
int vendor_message_srv_send_trans(struct send_param *param, uint8_t *pData, uint16_t len);
/**
* @brief TID selection method
*
* @return TID
*/
uint8_t vendor_srv_tid_get(void);
/**
* @brief 复位厂商模型服务,取消所有正在发送的流程
*/
void vendor_message_srv_trans_reset(void);
#ifdef __cplusplus
}
#endif
#endif
@@ -0,0 +1,37 @@
/********************************** (C) COPYRIGHT *******************************
* File Name : ch32v20x_conf.h
* Author : WCH
* Version : V1.0.0
* Date : 2022/06/16
* Description : Library configuration file.
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/
#ifndef __CH32V20x_CONF_H
#define __CH32V20x_CONF_H
#include "ch32v20x_adc.h"
#include "ch32v20x_bkp.h"
#include "ch32v20x_can.h"
#include "ch32v20x_crc.h"
#include "ch32v20x_dbgmcu.h"
#include "ch32v20x_dma.h"
#include "ch32v20x_exti.h"
#include "ch32v20x_flash.h"
#include "ch32v20x_gpio.h"
#include "ch32v20x_i2c.h"
#include "ch32v20x_iwdg.h"
#include "ch32v20x_pwr.h"
#include "ch32v20x_rcc.h"
#include "ch32v20x_rtc.h"
#include "ch32v20x_spi.h"
#include "ch32v20x_tim.h"
#include "ch32v20x_usart.h"
#include "ch32v20x_wwdg.h"
#include "ch32v20x_it.h"
#include "ch32v20x_misc.h"
#endif /* __CH32V20x_CONF_H */
@@ -0,0 +1,18 @@
/********************************** (C) COPYRIGHT *******************************
* File Name : ch32v20x_it.h
* Author : WCH
* Version : V1.0.0
* Date : 2022/06/16
* Description : This file contains the headers of the interrupt handlers.
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/
#ifndef __CH32V20x_IT_H
#define __CH32V20x_IT_H
#include "debug.h"
#endif /* __CH32V20x_IT_H */
@@ -0,0 +1,31 @@
/********************************** (C) COPYRIGHT *******************************
* File Name : system_ch32v20x.h
* Author : WCH
* Version : V1.0.0
* Date : 2022/06/16
* Description : CH32V20x Device Peripheral Access Layer System Header File.
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/
#ifndef __SYSTEM_ch32v20x_H
#define __SYSTEM_ch32v20x_H
#ifdef __cplusplus
extern "C" {
#endif
extern uint32_t SystemCoreClock; /* System Clock Frequency (Core Clock) */
/* System_Exported_Functions */
extern void SystemInit(void);
extern void SystemCoreClockUpdate(void);
#ifdef __cplusplus
}
#endif
#endif /*__CH32V20x_SYSTEM_H */