
开源协议
:GPL 3.0
描述
视频链接:
描述
本项目是基于CW32F030的电压电流表,具有电压电流表测量的功能
约测量电压范围:0-30V (可模拟测试)
约测量电流范围:0-3A (可模拟测试)
完成品照片如下
第一次使用3D打印加面板打印,稍微有一点翻车,不过还好整体不咋影响。
这次使用的全部都是插件式的元器件,下面是我焊接过程的图片
插接所有元件
一张正面的全家福,不!还缺少几个插件没到货
画的很随意,彩色丝印的功能只是留给立创开发板和芯源半导体了。
PCB也基本是根据官方的来的,摆放布局走线方式等等。
硬件供电采用DC-DC输入电压5V-12V即刻
重点来了:这个32芯片具有:12位高速ADC 可达到±1.0LSB INL 11.3ENOB 有多种Vref参考电压,我们常用的STM32仅支持VDD=Vref。本次采用的是内置1.5V的参考电压,该参考电压可以通过程序进行配置;
在元器件采购上面翻了一个错误,数码管本来是要采购共阴极的数码管,一不小心买成了共阳极的数码管了。我就说程序下载后,数码管有问题,经过寻找问题竟然是采购错了。下面是修改成共阳极数码管的部分程序:
/* 共阳数码管编码表:
0xc0 0xf9 0xa4 0xb0 0x99 0x92 0x82 0xf8 0x80 0x90
0 1 2 3 4 5 6 7 8 9
0x40 0x79 0x24 0x30 0x19 0x12 0x02 0x78 0x00 0x60
0. 1. 2. 3. 4. 5. 6. 7. 8. 9.
0x3f 0xbf
0 0 1 1 1 1 1 1 1011 1111
dp G F E D C B A
*/
uint8_t Seg_Table[21] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90,
0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x60,0x08};// 0x08:A.
// 公共端的设置:
/**
* @brief 关闭所有公共端
*
*/
void Close_Com(void)
{
GPIO_WritePin(CW_GPIOA,GPIO_PIN_8,GPIO_Pin_RESET);
GPIO_WritePin(CW_GPIOB,GPIO_PIN_3,GPIO_Pin_RESET);
GPIO_WritePin(CW_GPIOB,GPIO_PIN_4,GPIO_Pin_RESET);
GPIO_WritePin(CW_GPIOA,GPIO_PIN_11,GPIO_Pin_RESET);
GPIO_WritePin(CW_GPIOA,GPIO_PIN_12,GPIO_Pin_RESET);
GPIO_WritePin(CW_GPIOA,GPIO_PIN_15,GPIO_Pin_RESET);
}
// Seg_Dis函数中的修改
switch(Pos)
{
case 0:
GPIO_WritePin(CW_GPIOA,GPIO_PIN_8,GPIO_Pin_SET); //PA8,COM1
break;
case 1:
GPIO_WritePin(CW_GPIOA,GPIO_PIN_11,GPIO_Pin_SET); //PA9,COM2
break;
case 2:
GPIO_WritePin(CW_GPIOA,GPIO_PIN_12,GPIO_Pin_SET); //PA10,COM3
break;
case 3:
GPIO_WritePin(CW_GPIOA,GPIO_PIN_15,GPIO_Pin_SET); //PA11,COM4
break;
case 4:
GPIO_WritePin(CW_GPIOB,GPIO_PIN_3,GPIO_Pin_SET); //PA12,COM5
break;
case 5:
GPIO_WritePin(CW_GPIOB,GPIO_PIN_4,GPIO_Pin_SET); //PA15,COM6
break;
default:
break;
}
全部修改成共阴极的就OK啦
其实数码管还是很好理解的,我贴一下以前我上学的时候记得笔记,当时是用IO口驱动三极管,三极管驱动数码管的,当时还用到了STM32的PB4引脚,这个引脚是需要配置复用功能才可以当做普通GPIO来使用的。
程序中全部加入注释,方便小白阅读理解,请下载附件中的程序自行查阅。
讲到这里,也差不多了,祝自己和大家都能够更上一层楼吧!
设计图

BOM


评论