MF32BSP_XerolySkinner 2.0.0
C++版本的驱动库
载入中...
搜索中...
未找到
bsp_Digit.cpp
浏览该文件的文档.
1/*----------------------------------------------------------------------------------------------------
2 #
3 # Copyright (c) 2022 Yuankang Liang(XerolySkinner)
4 #
5 # 本软件按原样提供,无任何明示或暗示
6 # 在任何情况下,作者都不承担任何损害赔偿责任
7 #
8 # 使用的许可声明:
9 # 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件.
10 # 2. 免费授予以任何目的,前提是版权声明出现在所有副本中.
11 # 并且版权声明和许可声明同时出现.
12 # 3. 你有使用,复制,修改,分发,和销售本软件的许可.
13 # 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的.
14 # 5. 本通知不得从任何来源删除或更改.
15 #
16 # Yuankang Liang(XerolySkinner)
17 # E-mail:zabbcccbbaz@163.com
18 # QQ:2715099320
19 # Mobile Phone:13005636215
20 #
21 # All rights reserved.
22 */
23
34//----------------------------------------------------------------------------------------------------
35// 头文件
36#include "bsp_Digit.h"
38//----------------------------------------------------------------------------------------------------
39// 成员函数
40//----------------------------------------------------------------------------------------------------
41void bsp_Digit::dat(u8 SendVal) {
42 for (u8 i = 0; i < 8; i++) {
43 HAL_GPIO_WritePin(GPIOx_MOSIO,GPIO_Pin_MOSIO,((SendVal << i) & 0x80)?GPIO_PIN_SET: GPIO_PIN_RESET);
44 HAL_GPIO_WritePin(GPIOx_S_CLK,GPIO_Pin_S_CLK,GPIO_PIN_RESET);
45 HAL_GPIO_WritePin(GPIOx_S_CLK, GPIO_Pin_S_CLK, GPIO_PIN_SET);}}
46//----------------------------------------------------------------------------------------------------
47void bsp_Digit::com(void) {
48 HAL_GPIO_WritePin(GPIOx_R_CLK, GPIO_Pin_R_CLK, GPIO_PIN_RESET);
49 HAL_GPIO_WritePin(GPIOx_R_CLK, GPIO_Pin_R_CLK, GPIO_PIN_SET);}
50//----------------------------------------------------------------------------------------------------
51void bsp_Digit::DatCom(u8 SendVal,u8 cha){
52 u16 i=0xFFFF/division;
53 dat(Polarity?~digit_ca[SendVal]:digit_ca[SendVal]);
54 dat(1<<cha);
55 com();
56 while(++i);}
57//----------------------------------------------------------------------------------------------------
59 DatCom(num%10,0);num/=10;
60 DatCom(num%10,1);num/=10;
61 DatCom(num%10,2);num/=10;
62 DatCom(num%10,3);num/=10;}
63//----------------------------------------------------------------------------------------------------
65 u16 i=0xFFFF/division;
66 dat(Polarity?0x80:0x7E);
67 dat(1<<cha);
68 com();
69 while(++i);}
70//----------------------------------------------------------------------------------------------------
71void bsp_Digit::numdop(u16 num,u8 cha){
73 bsp_Digit::dop(cha);}
75//----------------------------------------------------------------------------------------------------
76// 构造函数
78 GPIO_TypeDef* GPIOx_MOSIO, uint16_t GPIO_Pin_MOSIO,
79 GPIO_TypeDef* GPIOx_S_CLK, uint16_t GPIO_Pin_S_CLK,
80 GPIO_TypeDef* GPIOx_R_CLK, uint16_t GPIO_Pin_R_CLK,
81 bool Polarity){
数码管显示类
static const u8 digit_ca[]
共阳极数码管的段码表,共阴极由此反相得到
Definition: bsp_Digit.h:56
void dat(u8 SendVal)
Definition: bsp_Digit.cpp:41
GPIO_TypeDef * GPIOx_S_CLK
Definition: bsp_Digit.h:88
void dop(u8 cha)
显示一个小数点
Definition: bsp_Digit.cpp:64
u16 division
分频系数,越大越慢
Definition: bsp_Digit.h:78
GPIO_TypeDef * GPIOx_R_CLK
Definition: bsp_Digit.h:90
void num(u16 num)
显示一个四位数据
Definition: bsp_Digit.cpp:58
uint16_t GPIO_Pin_R_CLK
Definition: bsp_Digit.h:91
GPIO_TypeDef * GPIOx_MOSIO
Definition: bsp_Digit.h:86
void numdop(u16 num, u8 cha)
显示数据与一个像素点
Definition: bsp_Digit.cpp:71
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)
Definition: bsp_Digit.cpp:77
void com(void)
Definition: bsp_Digit.cpp:47
void DatCom(u8 SendVal, u8 cha)
在某位显示一个数字
Definition: bsp_Digit.cpp:51
uint16_t GPIO_Pin_MOSIO
Definition: bsp_Digit.h:87
uint16_t GPIO_Pin_S_CLK
Definition: bsp_Digit.h:89
bool Polarity
共阴或共阳
Definition: bsp_Digit.h:85
uint8_t u8
8位无符号数类型
Definition: varint.h:40
uint16_t u16
16位无符号数类型
Definition: varint.h:41