Files
MicrochipFor32/bsp_Device/bsp_Digit.h
XerolySkinner 08f9f63eb3 内容大更新
更加规范化
加入modbus类
优化帮助文档
2022-11-22 03:43:24 +08:00

95 lines
3.0 KiB
C++

/*----------------------------------------------------------------------------------------------------
#
# Copyright (c) 2022 Yuankang Liang(XerolySkinner)
#
# 本软件按原样提供,无任何明示或暗示
# 在任何情况下,作者都不承担任何损害赔偿责任
#
# 使用的许可声明:
# 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件.
# 2. 免费授予以任何目的,前提是版权声明出现在所有副本中.
# 并且版权声明和许可声明同时出现.
# 3. 你有使用,复制,修改,分发,和销售本软件的许可.
# 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的.
# 5. 本通知不得从任何来源删除或更改.
#
# Yuankang Liang(XerolySkinner)
# E-mail:zabbcccbbaz@163.com
# QQ:2715099320
# Mobile Phone:13005636215
#
# All rights reserved.
*/
/**
* @file bsp_Digit.h
* @brief 数码管显示类
* @mainpage 主要信息
* @author Yuankang Liang(XerolySkinner)
* @email zabbcccbbaz@163.com
* @version V1.0.0
* @date 2022-11-16 19:24
*/
//////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------------------------------------------
// 头文件
#pragma once
#ifdef __cplusplus
#include "varint.h"
#include "gpio.h"
//////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------------------------------------------
// 枚举
/**
* @brief 数码管的共阳极或共阴极选择
*/
enum {
anode, ///< 共阳极
cathode ///< 共阴极
};
//////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------------------------------------------
// 段码表
/**
* @brief 共阳极数码管的段码表,共阴极由此反相得到
*/
static const u8 digit_ca[] = { ///< 共阳极段码表
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
//////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------------------------------------------
// 类目
/**
* @brief 一个面向数码管的类,使用级联的HC595
*/
class bsp_Digit{
public:
bsp_Digit(
GPIO_TypeDef* GPIOx_MOSIO, uint16_t GPIO_Pin_MOSIO,
GPIO_TypeDef* GPIOx_S_CLK, uint16_t GPIO_Pin_S_CLK,
GPIO_TypeDef* GPIOx_R_CLK, uint16_t GPIO_Pin_R_CLK,
bool Polarity
);
public:
void DatCom(u8 SendVal,u8 cha); ///< 在某位显示一个数字
void num(u16 num); ///< 显示一个四位数据
u16 division; ///< 分频系数,越大越慢
void dop(u8 cha); ///< 显示一个小数点
void numdop(u16 num,u8 cha); ///< 显示数据与一个像素点
protected:
void dat(u8 SendVal);
void com(void);
private:
bool Polarity; ///< 共阴或共阳
GPIO_TypeDef* GPIOx_MOSIO;
uint16_t GPIO_Pin_MOSIO;
GPIO_TypeDef* GPIOx_S_CLK;
uint16_t GPIO_Pin_S_CLK;
GPIO_TypeDef* GPIOx_R_CLK;
uint16_t GPIO_Pin_R_CLK;
};
//////////////////////////////////////////////////////////////////////////////////////////////////////
#endif