• 博客(138)
  • 资源 (9)
  • 收藏
  • 关注

原创 再分享一个好用的串口波形显示软件

之前的文章中介绍过一些程序调试时波形显示的方法:《Jlink使用技巧之RTT和J-Scope》 《串口波形显示软件SerialChart的使用》《调试程序时怎样查看变量波形?看这里》今天再来介绍一个也很好用的串口波形显示软件:SerialPlot先看下界面,简洁美观,看着很舒服。其特点是支持三种类型的数据格式,使用非常方便:SimpleBinary:简单的二...

2023-10-27 16:10:16 1039

原创 2023全国电子设计竞赛的一点思路

2023电赛开始了,看了一下题目,有几个题有一点思路,分享给大家。不知道对不对,欢迎一起讨论。C题_电感电容测量装置用数字电桥的方案,网上有开源的方案,可以找找。ADI有个集成芯片AD5933,是测量阻抗的,可以看看能不能用。参考:https://www.armbbs.cn/forum.php?mod=viewthread&tid=107200&extra=page%3D1...

2023-08-02 15:57:46 1722

原创 STM32CubeMx+HAL库实现USB CDC+MSC复合设备

复制过来的只有usbd_cdc_if.c和usbd_cdc.c及对应的.h文件,usbd_msccdc.c文件是需要自己实现的USB复合设备的代码。然后编写usbd_msccdc.c和对应的.h文件。之前的文章中介绍过STM32的USB应用,包括虚拟串口(CDC)和大容量存储设备(MSC)。这里以MSC的工程为模板,将CDC工程中的下列文件/文件夹拷贝过来,并添加到工程中。然后把usbd_conf.h文件中USBD_MAX_NUM_INTERFACES的值1修改为3。MSC使用的是0x83和0x03端点。

2023-04-14 16:43:45 2550 6

原创 基于STM32CubeMx的USB CDC+MSC复合设备

之前的文章中介绍过STM32的USB应用,包括虚拟串口(CDC)和大容量存储设备(MSC)。今天来介绍USB实现CDC和MSC复合设备的方法。硬件:STM32F407VET6软件:STM32CubeMx v6.5+F4库v1.27.1编译环境:MDK 5.301.准备两个工程首先用STM32CubeMX分别生成CDC和MSC两个工程,测试正常。具体可参考之前的文章。STM32实现USB转串口功能(...

2023-04-14 16:38:38 1591 3

原创 SDIO读写SD卡速度有多快?

STM32单片机,SDIO+DMA方式读写SD卡测试。

2023-03-14 15:37:06 5151 2

原创 SPI方式读写SD卡速度有多快?

很久没有写公众号了,一方面忙,另一方面也不知道写些什么内容,大家如果有想了解的(前提是我也懂),可以后台发送给我。今天主要来测试一下SPI读写SD卡的速度。SD卡是一个嵌入式中非常常用的外设,可以用于存储一些大容量的数据。但用单片机读写SD卡速度一般都有限(对于高速SD卡,主要是受限于单片机本身的接口速度),在高速、实时数据存储时可能会有影响。但具体速度可以达到多少呢,今天就来实际测试一下。SD卡...

2023-03-10 11:50:33 3244 2

原创 SPI读写SD卡速度有多快?

看到这个不到100KB/S速度,我还是有的不敢相信的,毕竟20MHz的时钟,理论上速度可以达到2MB/S左右,考虑到一些文件系统等协议的消耗,能到1/3差不多,那也得600多KB,现在的速度差距有点大。接下来,我们先确定SPI和时钟频率多少合适,经过测试,发现20MHz的时钟频率比较合适,10MHz时读写速度会降低,再高的时钟频率对速度的提升也很小。最后我们对读取速度也进行了测试,使用DMA方式,使能DMA读扇区数据和发送指令,测试结果如下,读取速度可以达到1.1MB~1.2MB/S。

2023-03-10 11:24:15 5465 1

原创 STM32定时器实现红外接收与解码

STM32通过定时器输入捕获方式解码红外遥控数据。

2023-02-15 12:17:04 6086

原创 STM32F0系列中断向量映射问题

最近用Cortex-M0内核的STM32F030K6T6做个东西,需要做IAP升级,发现它的中断向量与M3、M4等内核的单片机不太一样,这里分享给大家。IAP升级需要一个BootLoader程序,一个应用程序。BootLoader程序直接烧写到flash起始地址就行,中断向量也不用改。但是应用程序需要烧写到BootLoader程序后面,且中断向量必须重新映射。M3、M4等内核的单片机,直接修改中断...

2023-01-31 08:00:16 696

原创 【开源项目】SFUD--通用串口Flash驱动库的移植和使用

由于现有市面的串行 Flash 种类居多,各个 Flash 的规格及命令存在差异, SFUD 就是为了解决这些 Flash 的差异现状而设计,让我们的产品能够支持不同品牌及规格的 Flash,提高了涉及到 Flash 功能的软件的可重用性及可扩展性,同时也可以规避 Flash 缺货或停产给产品所带来的风险。下载的源码中有个STM32F1xx的工程例程,使用的是标准库,这里改为HAL库,具体代码就不贴了,可在文章开始下载完整工程。如果使用的是QSPI,则需要编写下面这个函数:​​​​​​​。

2022-12-14 15:37:43 1060 1

原创 【干货】STM32通过ADC模拟看门狗实现掉电保存

使用STM32CubeMx配置,通过ADC模拟看门狗实现掉电保存功能。无需任何外部电路。

2022-11-16 17:40:41 4863 3

原创 开源贴片机OpenPnp使用体验

OpenPnP贴片机使用体验

2022-11-07 13:03:15 6227 7

原创 单片机通过WIFI模块(ESP8266)获取网络时间与天气预报

单片机通过AT指令访问WIFI模块,获取网络时间和天气预报。

2022-10-22 14:57:04 10879 1

原创 盘点国产RISC-V内核的单片机

RISC-V就不必多说了,它是一个基于精简指令集的开源指令集架构。与主流的主流的架构为x86与ARM架构不同,其特点就是完全开源。今天跟大家一起盘点一下国产RISC-V内核的单片机。

2022-10-15 12:25:04 7213

原创 开源自己做的4.3寸触摸屏,SWM32单片机+LVGL

SWM32S单片机驱动4.3寸触摸屏,移植了LVGL图形界面,通过串口WIFI模块获取天气预报和网络时间。

2022-10-12 17:46:39 3865 4

原创 SWM32系列教程10--SDRAM和LCD

SWM32系列教程之SDRAM和LCD的使用。

2022-09-23 15:59:49 1395

原创 SWM32系列教程9-SDIO及FatFs文件系统

SWM32单片机使用SDIO读写SD卡,并实现FatFs文件系统的移植。

2022-09-22 16:10:50 991

原创 串口接收不定长数据的几种方法

以STM32单片机为例,介绍几种串口接收不定长数据的方法

2022-09-20 12:05:26 5862 4

原创 STM32使用HAL库驱动W5500

W5500 芯片是一款集成全硬件 TCP/IP 协议栈的嵌入式以太网控制器,为单片机提供了更加简单、快速、稳定、安全的以太网接入方案。采用标准4线SPI接口,理论速率上可以达到 80MHz。硬件设计原理图如下,需要注意的是R12~R17几个电阻是模式选择,根据实际需求选择焊接哪些。芯片采样SPI接口与单片机连接,再加上INT和RST引脚,共占用6个IO,其中INT引脚可以不用,RST一般需要连接。...

2022-09-16 11:30:53 8013 7

原创 SWM32系列教程8--SPI及其应用

SPI接口是非常常用的一种数字外设,SWM32S单片机有2个SPI接口,其特点如下:全双工串行同步收发可编程时钟极性和相位支持 MASTER 模式和 SLAVE 模式MASTER 模式下最高传输速度支持主时钟 4 分频数据宽度支持 4BIT 至 16BIT具备深度为 8 的接收和发送 FIFO基本功能都有,中规中矩,8字节的收发FIFO算是一个亮点。端口配置配置SPI之前,首先要配置一下端口,这里...

2022-09-04 08:30:41 597

原创 一个IO挂多个按键怎么实现?

有时候做设计时,我们会遇到外部按键比较多,IO口不够用的情况。当没有按键按下时,ADC的电压为3.3V,由于不同按键对应的分压电阻不同,所以不同按键按下时,得到的ADC电压也不同。理论上,上述两种方式都可以一个IO挂很多按键,但挂的越多,每个按键的分压后的电压就越接近,越不容易区分,导致误判。这种方式与上面的原理一样,但不同的是,这种方式不支持组合按键,且有按键优先级之分,当S8按下时下面的按键无效。设计时需要计算好每个按键的分压电阻阻值,使每个按键的分压值(包括组合按键)有较明显区别,便于ADC区分。..

2022-08-31 15:49:51 3418

原创 不会写Bootloader?看这里,现成的

前段时间要写一个BootLoader程序,想起来好像在STM32的HAL库里面看到过相关的Demo,打算参考一下。打开相关的目录看了一下,确实是有相关文件:但是没找到工程文件。没办法,那就自己百度吧,关键词OpenBootloader一搜索,发现这不是ST原创的,是一个开源的项目。简称OpenBLT,是一种开源引导加载程序,可以在任何微控制器上运行,并使用支持Usart、Can、USB、SD卡等多......

2022-08-29 08:00:55 908

原创 盘点一些国产“有特点”的单片机

自从芯片涨价潮以来,国产芯片,尤其是单片机类芯片犹如雨后春笋般发展起来,其中也不乏一些优秀的产品。今天来盘点一下一些有特点的单片机。这里所说的单片机,是指通用型的MCU,像ESP32等SOC芯片就不在本次讨论范围内了。而“有特点”,只是除了一些常规的功能及外设外,还集成了一些不太常用,但用起来又很方便的功能或外设。1.高性能模拟外设单片机模拟外设有ADC、DAC、运放、比较器等。以ADC最为常见,......

2022-08-18 17:09:19 7658 4

原创 SWM32系列教程7-I2C及其应用

SWM32S单片机有2个I2C外设,其特点如下:支持最高1MHZ速率主机模式支持最高400KHZ速率从机模式支持7位或10位地址波特率可配置支持中断功能今天就以驱动电容触摸芯片GT911为例,介绍一下I2C模块的使用。配置I2C之前,首先要配置一下端口映射,这里使用GPIOA9和GPIOA10,使能端口上拉功能(注意该单片机不是所有端口支持内部上拉功能)。然后配置I2C为...

2022-08-04 08:00:08 460

原创 四位数显表头设计

去年帮别人定制了一个四位数显小表头,可以用于测量4-20mA或者0-5V、0-10V输出的的各种传感器,可设置显示范围、上下限报警灯。由于后面更改方案,此方案暂时搁置不用。今天来分享一下软硬件的设计过程。1.硬件设计1.1电源电源采用一个TL431+一个三极管构成线性稳压电路。采用这种方式,一方面是因为成本较低,另一方面,可以做大较大的电源输入范围(普通的1117-3.3...

2022-08-02 08:00:21 1680

原创 SWM32系列教程6-Systick和PWM

今天来介绍SWM32单片机的两个功能模块Systick和PWM。两个功能相对简单一些,所以放在一起介绍。1.系统定时器SystickSWM32内部包含一个Systick定时器,与其它ARM CortexM内核的单片机一样,该定时器是一个24位递减定时器。一般用作系统滴答定时器,设置为1ms中断一次。使用方法也很简单,调用下面函数就行:SysTick_Config(Syst......

2022-07-29 08:00:57 575 2

原创 GD32使用ST的HAL库和GD官方库的一些体会

GD32作为国产MCU里的佼佼者,产品线也比较丰富,是替代STM32的一个很好的选择。前段时间有个项目用到GD32的单片机,今天来说说使用的一些体会。1.硬件我用的单片机型号为GD32F405RGT6,对应STM32F405RGT6。首先,硬件上基本兼容,有一点不同的是GD32的31和47脚为NC,STM32的为VCAP。STM32这两个引脚需要分别连接一个电容到GND,......

2022-07-27 17:00:48 6860 4

原创 SWM32系列教程5-ADC应用

1.ADC功能介绍SWM32SRET6单片机内置2个12位SAR型ADC,最多支持8通道,1MSPS 转换速率。支持软件触发、定时器触发。该单片机的ADC模块结构框图如下,该ADC相比于其它单片机内部ADC来说,有两个特点,一个是硬件平均器,一个是8级深度的FIFO。硬件平均器可以减少CPU软件求平均的工作量,8级深度的FIFO也可以减少中断的频率(如果使能中断),两者都......

2022-07-25 08:00:09 514

原创 几种RS485隔离通讯的方案介绍

RS485具有抗干扰能力强、成本低等特点,广泛应用于工业智能仪表,通讯设备等各个领域。RS485电路可以分为非隔离型和隔离型。隔离型电路是在非隔离型电路的基础上增加隔离性能,使得电路具有更强的抗干扰性和系统稳定性。今天介绍几种隔离RS485的方案。1.什么情况需要485隔离当485通信接口外部节点连接高压时,极易损坏后端电路,甚至可能会在使用端产生触电;当48......

2022-07-04 08:00:19 10541

原创 SWM32系列教程4-端口映射及串口应用

今天来介绍一下SWM32单片机的端口映射和串口的应用。1.端口映射之前的文章中介绍过,SWM32系列单片机的端口映射比较灵活。一个外设可以映射到多个不同的GPIO,对于PCB布线来说,就方便很多。可以通过PORTx_SEL寄存器来配置某个外设映射到哪个端口。如下图:以PC口为例,PC0可以配置PORTC_SEL寄存器,映射为FUNMUX0功能,PC1可以映射为FUNMUX......

2022-07-01 17:10:06 1716 3

原创 内部振荡器、无源晶振、有源晶振有什么区别?

单片机要运行起来,必须有一个时钟信号,就好像人的心跳。这个时钟信号可以由无源晶振提供,可以由有源晶振提供,目前大部分的单片机也集成了内部振荡器。今天就来聊聊这三者的区别。1.内部振荡器单片机内部集成的振荡器,一般为RC振荡器,好多人叫“内部晶振”,其实是不准确的。RC振荡器原理如下:其优点是实现的成本比较低,缺点是由于电阻电容的精度问题,所以RC振荡器的震荡频率误差较大,......

2022-06-25 19:00:51 2042

原创 UART波特率对时钟精度的要求有多高?

串口通讯(UART)是一种异步通讯,收发双方需要按照约定的波特率进行通讯。当波特率出现误差时,会导致通讯出错。那导致波特率出现误差的因素都有哪些呢,今天就来分析一下。1.分频误差首先,波特率是根据系统时钟分频产生的,而系统时钟和波特率可能不是整数倍的关系,所以分频时也会产生误差。但是目前大部分MCU的系统时钟比较高,一般都在几十MHz,远远大于串口通讯波特率,所以这个误差...

2022-06-24 08:00:31 2991

原创 SWM32系列教程3-时钟配置和GPIO

今天来介绍SWM32的时钟配置和GPIO的使用。1.时钟配置单片机要跑起来,时钟必须配置正确,SWM32的时钟相对来说还是比较简单的。具备 4 个时钟源可供使用:内部高频振荡器(20Mhz),25℃时精度为±1%, 全温度范围的精度为±5%。内部低频振荡器(32KHz)。外部振荡器(XTAH),可接 3MHz ~32MHz 频率无源晶振 。PLL 时钟,可选择内部高频时钟......

2022-06-12 09:00:54 1520

原创 SWM32系列教程2-新建工程

今天来介绍如何用新建SWM32的工程,这里以Keil为例。新建工程的方法跟STM32标准库的使用类似,操作过的朋友应该很熟悉。需要准备好以下软件和库:Keil MDK v5.12及以上版本Synwit.SWM32_DFP.pack文件(下载算法库)SWM320库文件J-Link下载工具1.库文件等的下载及安装 MDK的下载和安装这里不再介绍,建议用v.5.1...

2022-05-25 17:00:36 1133 1

原创 SWM32系列教程1-了解一下硬件

今天开始更新SWM32系列的教程,敬请关注,因为精力有限,可能时间会比较久,也请见谅。教程以SWM32SRET6单片机和自己做的4.3寸触摸屏评估板为例,同系列的使用起来相似。1.引脚分布 先了解一下单片机的硬件设计。与一些其它国产厂家追求与STM32兼容不同,该单片机与STM32软硬件都不兼容。先看一下引脚分布: 64Pin的芯片,其中红色区域为...

2022-05-24 17:00:45 2439

原创 了解一款新的单片机

MCU价格依然高居不下,各个国产MCU厂商的竞争也是如火如荼。然而好多厂商都是追求硬件甚至软件兼容STM32。但是兼容性好的芯片用的人也多,最终供不应求,还是会导致价格上涨。与其这样,不如干脆选一款相对冷门的单片机,用的人没那么多,价格也就相对稳定一些。 最近用到一款国产的单片机,华芯微特的SWM32系列,挺有特点,这里分享给大家。M4内核,工作...

2022-05-17 18:25:42 804

原创 为什么我问问题没人搭理我

相信很多人都有这种经历:遇到技术上的问题,在群里提问,没人搭理。。。为什么?大家都很忙,没人鸟你?有可能,但也有可能是你问问题的方式不对。我也是从菜鸟走过来的,也问过别人问题。现在有点经验了,也会有人问我问题,尤其做公众号以来,有很多人加我问微信,私下里或者群里问一些问题,有时候我也会耐心解答,有时候也很忙,没法一一解答,这里谈一下自己的感受~1.先学会查资料对于一些很简...

2022-05-13 15:59:00 355

原创 开源按键组件Multi_Button的使用,含测试工程

之前的文章中介绍过按键的处理方法《多功能(单击、双击、长按)按键设计》,今天再来分享另外一种方式:MultiButton。1.Multi_Button简介MultiButton 是Github上的一个开源的按键处理组件,作者0x1abin。GIthub地址:https://github.com/0x1abin/MultiButtonMultiButton一个小巧简单易用的...

2022-04-22 17:00:00 4969 3

原创 嵌入式GUI盘点-你了解几款?

图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。GUI一般需要MCU有一定的硬件资源和处理能力,现在MCU资源越来越多,同时市场需求也增多了,GUI功能也越来越丰富了。下面来盘点嵌入式中常见的一些GUI。1.emWinemWin是由德国SEGGER公司开发,可为图形LCD设计提供高...

2022-04-20 08:34:26 5050

原创 几种单USB转多串口的方案

串口(Uart)是嵌入式中非常常用的一种接口,然而现在的电脑都没有硬件串口。一般都是通过USB转串口或PCIE等总线扩展的方式扩展出串口。USB转串口是非常常用的一种。常用的USB转串口芯片有CH340/341、CP2102、PL2302等。但是这些芯片都是USB转单串口,如果需要多个串口,就需要占用多个USB口,比较麻烦。今天来介绍一下单USB口转多个串口的方案。1.专...

2022-04-19 08:00:00 4511

STM32的SPI+DMA方式驱动SD卡程序

STM32的SPI+DMA方式驱动SD卡底层程序,使用HAL库。可通过宏定义使能DMA或不使能DMA。DMA方式相较非DMA方式,速度优势明显。

2023-03-10

F429移植emWin工程

使用STM32F429IIT6,外挂SDRAM,移植emWIN例程。

2022-09-16

STM32驱动ADS1220程序

STM32驱动ADS1220程序,完整工程。包含芯片使用简介、硬件设计、软件设计详细的说明文档。

2022-09-16

STM32 USB虚拟U盘

STM32 USB虚拟U盘

2021-02-03

USB-HID上位机例程

USB-HID上位机例程,采用C#语言编写,VS2010开发环境。

2016-01-12

C#写的摄像头小软件

C#写的摄像头小软件,可以拍照片,录像~

2012-06-27

工频陷波电路

效果很好的50Hz工频陷波电路,有仿真曲线,经过实际验证

2011-10-23

VS2008入门教程

VS2008的入门教程,讲的很详细~~~~~~

2011-10-01

Verilog实现串口

在FPGA上用Verilog语言实现异步串口。包含源代码。

2011-09-24

Verilog驱动VGA

详细介绍了在FPGA上用Verilog语言驱动VGA显示的方法

2011-09-24

F340双串口程序

F340双串口收发程序,采用中断方式接收

2011-09-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除