0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

strongerHuang 来源:CW32生态社区 2023-10-19 10:17 次阅读

素材来源 | CW32生态社区

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

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

主要功能

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

主要功能包含:

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

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

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

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

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

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

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

电路设计

设计思路:

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

07172a26-6e1f-11ee-939d-92fbcf53809c.png

我们根据需求对每个部分进行细化设计,来实现既定目标。在下面,将会结合电路图和PCB对我的设计和设计思路进行详细的说明。 07381628-6e1f-11ee-939d-92fbcf53809c.png073c7600-6e1f-11ee-939d-92fbcf53809c.png (电源与电池管理)   074c5b38-6e1f-11ee-939d-92fbcf53809c.png07560020-6e1f-11ee-939d-92fbcf53809c.png0759b436-6e1f-11ee-939d-92fbcf53809c.png

(单片机及外设) 076b5628-6e1f-11ee-939d-92fbcf53809c.png

077a4516-6e1f-11ee-939d-92fbcf53809c.png

07aa9d60-6e1f-11ee-939d-92fbcf53809c.png


(模拟前端)

软件代码和调试

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

文件结构:

1. GUI --- LCD驱动和UI

2. FreeRTOS--- RTOS系统

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

08513422-6e1f-11ee-939d-92fbcf53809c.png

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

电池电量测量

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 */ 
}
界面显示

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

085e02c4-6e1f-11ee-939d-92fbcf53809c.png

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

0861c47c-6e1f-11ee-939d-92fbcf53809c.png

示波器显示:

086fe6ce-6e1f-11ee-939d-92fbcf53809c.png


审核编辑:汤梓红

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

    关注

    6037

    文章

    44559

    浏览量

    635504
  • 电源管理
    +关注

    关注

    115

    文章

    6183

    浏览量

    144519
  • 软硬件
    +关注

    关注

    1

    文章

    298

    浏览量

    19208
  • RTOS
    +关注

    关注

    22

    文章

    813

    浏览量

    119660
  • CW32
    +关注

    关注

    1

    文章

    210

    浏览量

    650

原文标题:集RTOS、GUI、蓝牙、电源管理等一体的软硬件开源项目(值得收藏学习)

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AVR单片机软硬件设计教程入门篇

    AVR单片机软硬件设计教程入门篇单片机就是一台微型电脑。麻雀虽小,五脏俱全,单片机将微型电脑的所有基本部分都集成在一片硅片上。构成单片机的基
    发表于 12-09 15:22

    承接各种单片机系统的软硬件开发项目,以及单片机反汇编项目

    十年以上单片机软硬件开发经验,精通C/C++和汇编。熟悉串口,USB,CAN等各种通信技术。承接各种单片机系统的软硬件开发及反汇编项目(深圳
    发表于 11-28 10:56

    【高手问答】从事单片机软硬件开发15年的工程师们,与您探讨单片机软硬件设计

    `编者导读:本期我们邀请了单片机/MCU 版主@张飞电子学院蔡琰 @张飞电子学院张角 @张飞电子学院黄忠,来解答大家在单片机/MCU设计上遇到的问题。高手简介:黄忠:张飞实战电子FOC和硬件课程讲师
    发表于 03-02 16:58

    CW32饭盒派开发板试用体验】+机械臂游戏项目开源)(5)加红外游戏操控

    /jishu_2353352_1_1.html 【CW32饭盒派开发板试用体验】+机械臂游戏项目开源)(4)多加点东西 - 单片机/MCU论坛 - 电子技术论坛- 广受欢迎的专业电子
    发表于 05-24 22:27

    单片机测控系统的软硬件平台技术

    本文探讨了一种用于工业测控系统的单片机软硬件综合设计方法——软硬件平台技术,重点阐述了其基本原理、设计思想、实现方法,并给出了一个单片机测控系统软硬
    发表于 08-13 09:38 12次下载

    AVR单片机软硬件学习教程

    AVR单片机软硬件学习教程 o第一讲:单片机及其开发工具简介 o第二讲:AVR硬件电路设计教程 o第三讲:AVR开发环境的建立,数字逻辑与C语言程序设计基础知识 o第四讲:流水灯、蜂鸣
    发表于 11-30 15:36 526次下载
    AVR<b class='flag-5'>单片机</b><b class='flag-5'>软硬件</b>学习教程

    单片机系统软硬件调试及维修技术

    单片机系统软硬件调试及维修技术,快来下载吧
    发表于 09-01 18:17 0次下载

    深度:单片机到底是如何软硬件结合的?

    分析单片机到底是如何软硬件结合的。并通过一个基本的程序,分析单片机程序的编译,运行。
    发表于 02-08 16:29 2次下载
    深度:<b class='flag-5'>单片机</b>到底是如何<b class='flag-5'>软硬件</b>结合的?

    深度:单片机到底是如何软硬件结合的?

    本文我们将分析单片机到底是如何软硬件结合的,并通过一个基本的程序,分析单片机程序的编译,运行。
    发表于 02-08 16:53 7次下载
    深度:<b class='flag-5'>单片机</b>到底是如何<b class='flag-5'>软硬件</b>结合的?

    cw32和stm32的区别

    cw32和stm32的区别 CW32和STM32是两种常见的单片机,被广泛应用于各种电子设备中。在本文中,我们将深入探讨CW32和STM32之间的区别和优劣势。 1.
    的头像 发表于 08-16 11:15 4261次阅读

    CW32单片机低电压检测器的使用介绍

    CW32单片机低电压检测器的使用介绍
    的头像 发表于 09-18 10:56 1091次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b>低电压检测器的使用介绍

    CW32单片机UART波特率设置介绍

    CW32单片机UART波特率设置介绍
    的头像 发表于 10-24 17:35 930次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b>UART波特率设置介绍

    CW32单片机UART基本数据收发功能介绍

    CW32单片机UART基本数据收发功能介绍
    的头像 发表于 10-24 16:50 778次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b>UART基本数据收发功能介绍

    CW32单片机I2C接口读写EEPROM芯片介绍

    CW32单片机I2C接口读写EEPROM芯片介绍
    的头像 发表于 11-09 17:42 1074次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b>I2C接口读写EEPROM芯片介绍

    CW32单片机在智能马桶的应用介绍

    和调节。本文将介绍CW32单片机在智能马桶的详细应用。图:CW32的智能马桶控制板CW32单片机在智能马桶的应用介绍1.温度感应与控制智能马
    的头像 发表于 12-20 10:09 625次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b>在智能马桶的应用介绍