基于CW32单片机做的软硬件开源项目

描述

素材来源 | CW32生态社区

  经常有小伙伴问【哪里有可以参考的开源项目】之类的问题。其实,我不定期都在给大家分享一些优秀的开源项目。

  今天就再给大家分享一个基于CW32单片机做的软硬件开源项目,其中包括RTOS、GUI、蓝牙、电源管理等众多常用功能。  

主要功能

这个产品我收到一个实物,也用了一段时间,但有些功能还没有完善,不过整体还不错,用于学习或者做项目借鉴完全没问题。

 

主要功能包含:

1. 电压测量+阈值判断,阈值电平可以根据需求自行设定满足不同逻辑电平的场景,并且保留“简易逻辑电平测试笔“好用的红绿灯提示功能;

2. 通断测量,且阈值电阻可以根据需求调整;

3. 二极管测量,点亮一颗二极管(注意!不是三极管!!!);

4. PWM输出,方便在一些场景下提供一个已知量对系统进行测试,也可以对无源蜂鸣器等进行测试

5. PWM输入,可以对频率进行测量(甚至是对串口等数据进行简单的解码显示等功能,不过目前技术有限还没有实现)

6. 直流输出,模拟出一个需要的直流电平进行测试。

7. 可以连接扩展板进行配合测量。  

电路设计

设计思路:

在对测试笔进行设计时,我把整体分为了五个部分:模拟前端、电源与电池管理、单片机及外设、显示屏、用户控制。根据模块化的设计思路,我们可以在画电路图时更加有条理,也可以在进行PCBLayout时将布局按照模块进行大致区分,以便于进行走线等操作。

CW32

    我们根据需求对每个部分进行细化设计,来实现既定目标。在下面,将会结合电路图和PCB对我的设计和设计思路进行详细的说明。   CW32CW32 (电源与电池管理)   CW32CW32CW32

(单片机及外设)   CW32

CW32

CW32


(模拟前端)  

软件代码和调试

该项目开源地址: https://gitee.com/multifunction_test_pen/test_pen  

文件结构:

1. GUI --- LCD驱动和UI 

2. FreeRTOS --- RTOS系统 

3. USER --- 底层驱动和app

CW32

这里面包括单片机常见外设及应用代码,下面给大家看一些代码。

电池电量测量

BAT_ADC_ResultBuff数组存储的是电池采集的ADC值。 1.计算BAT_ADC_ResultBuff数组的平均值,去掉最大最小值,防止数据突变。 2.将计算的平均值。

uint16_t get_bat_val(void)
{
    uint32_t sum = 0;
    uint16_t bat_val;
    uint32_t len = sizeof(BAT_ADC_ResultBuff) / 2;
    uint16_t max = 0;
    uint16_t min = 0xffff;
    int i;
    for ( i = 0; i < len; i++)
    {
        sum += BAT_ADC_ResultBuff[i];
        if(BAT_ADC_ResultBuff[i] > max)
        {
            max = BAT_ADC_ResultBuff[i];
        }
        if(BAT_ADC_ResultBuff[i] < min)
        {
            min = BAT_ADC_ResultBuff[i];
        }
    }
    sum -= max + min;
    sum = sum / (len - 2);
    sum = dynamic_mean(bat_cahe,sum,len_cahe);
    // sum -= 30;
    bat_val = sum * 2500 * 2 /4095;
    return bat_val;
}
    占空比调节

占空比修改在PWM中断里面修改,只需要改变PosWidth值。 
void GTIM1_IRQHandler(void) 
{ 
    static uint16_t TimeCnt = 0; 
    GTIM_ClearITPendingBit(CW_GTIM1, GTIM_IT_OV); 
    if (TimeCnt++ >= 100) 
    { 
        TimeCnt = 0; 
        GTIM_SetCompare1(CW_GTIM1, PosWidth); 
    } 
    /* USER CODE END */ 
}
  界面显示

界面显示包含了显示内容和功能检测. 

 

CW32

    为了方便测试,这里还引入了上位机工具,比如使用虚拟仪器软件进行测量:

CW32

  示波器显示:

CW32

   
审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分