STM32的定时器触发的固定频率ADC采样(使用DMA)
66a68bdc2e113256dd9ec6a306efb39719e7407cc1b03cc444bd07fce5ef23bba7a06e34b238e4048b06bd1494792e5615302f81ba176854306706409ba9fbe1c6e2f1b31bcebcfeb7e8ed2497aa865ee268ad2ecdb881bbdfc2e4d762905d7937b3c1a9b86c75d737b92779d841e0590bcb8690728f1276ea6121003c7633d31880e634ed97aaaa472a5eec023bdac2a0f40342b66a5d01cc437d55e32a557758ba8565ab20f17fd18f8aa0de8489c0cf1f4e97d4517591e739337829c115b75c08e88485535d841b5a0f535e0f7f577611933ecade31eeaf83fc843a41079ddb8d6b44da41e2fb260b8990639e4b745fbd750ae0026a266 ...
HAL库实现STM32的ADC电压采样(轮询、中断、DMA)
100c7b5d976363d7d19e4a0b90053397033ad0da9bb95e92ec5f3edcebcb2b33ea8d81f836ea9c65ef4670c61214c553a2baaa26e3d4e7db9dad865a3065a106dd1c5695f48fdf61a15b9b529d3ef328f0275c86cae018b1f8d2e186cb823f83aede2362eff578efb334bfffe4b1810414d4544526e18d9d6ec9b7e946f6477973571b0230cd15b3cd684948b6ad6a434ccd8441344b258b2c70b5585d537052b788c181f0667e3c585c04277899439add0c878158d14a7401c10246691a3e0e818192a04b9cbadaf097fb823b1981cce700ab90199c3e1858a63fffe070ccff73a15fd9d13b27627f418334311925eab54c1c2a60ac398bd ...
如何对stm32的程序进行加密
f47422a2169a6adbd4352af3592c5d9038d5532fe5ea12cb460799cf62187f2e6d67ee9e75538aabaca48cc77eeb82786783c16c7cd179987e8280aefac1c6562e255ad2246013c3a068343874cb1dc55e4896db98ee2358602d3418efa03f4b05c11edf19cf389ec3c13bfcbbad80e0d37aa4cfa5424e39e45101677f5361083c737b223ee984cb88efbcee2a2ee20e8b99b66f5a25733df54ebf8360ee46882168c79537be53c7ed6476b3fc1189ceadd3c5aa05ebfc952315e2f1658b5c4995aa8faf6b0dfdd5207326fbbbdbd122c0cf6dca11e0cb47c493e3a29547df72b03aa8470ae42d18aa74e3978d5f78c79038366da5af8628e ...
告别原始UI样式,拥抱Fluent Design风格PyQt / PySide组件库
告别原始UI样式,拥抱Fluent Design风格PyQt / PySide组件库1 简介这是一个使用 PyQt/PySide 编写的 Fluent Design 风格的组件库,支持亮暗主题无缝切换和自定义主题色,搭配 QtDesigner 可以快速开发美观的界面。github 仓库地址为 https://github.com/zhiyiYo/PyQt-Fluent-Widgets ,演示视频可以在哔哩哔哩上观看。
2 安装轻量版 (AcrylicLabel 不可用):
1pip install PyQt-Fluent-Widgets -i https://pypi.org/simple/
完整版:
1pip install "PyQt-Fluent-Widgets[full]" -i https://pypi.org/simple/
如果项目中使用的是 PySide2、PySide6 或者 PyQt6,可以在 PySide2、PySide6 和 PyQt6 分支下载对应的代码。
注意请勿同时安装 PyQt-Fluent-Widgets ...
Python设计可视化库
Python设计可视化库1 matplotlib(静态)Matplotlib 是一个用于创建静态、交互式和动画可视化的Python库。它提供了一个类似于MATLAB的绘图框架,使得用户能够轻松地创建高质量的图表和图形。Matplotlib 广泛用于数据可视化,特别是在科学计算和工程领域。推荐阅读(点击阅读👉):玩转Matplotlib的10个高级技巧
以下是Matplotlib的一些主要特点:
多平台:支持多种操作系统,包括Windows、Linux和macOS。
多种输出格式:可以生成多种格式的图形,如PNG、PDF、SVG、EPS等。
丰富的图表类型:支持线图、散点图、柱状图、直方图、箱线图等多种图表类型。
自定义能力:用户可以自定义图表的各个方面,包括颜色、线型、标记、图例、标题等。
交互式工具:提供了交云式界面,如可以缩放和拖动的图表。
动画支持:可以创建动画图表,展示数据随时间的变化。
扩展性:可以通过扩展包支持更多的功能,如3D绘图等。
优点:
易于解释的数据属性 在分析数据时,快速了解数据分布情况往往非常有用的。例如,如果你想检查拥有最多粉丝的前100名用 ...
Keil生成的Map文件分析及存储使用情况分析
Keil生成的Map文件分析及存储使用情况分析1 引入相信有较大项目开发经验的朋友都曾遇到内存溢出的问题,那么大家都是如何分析这类问题的呢?大家遇到HardFault_Handler 有对map分析过吗?
出现HardFault_Handler原因:
数组越界操作;
内存溢出,访问越界;
堆栈溢出,程序跑飞;
中断处理错误;
解决办法:参考链接:https://blog.csdn.net/electrocrazy/article/details/78173558
首先讲述一下关于map在MDK-ARM中的配置。其实,在MDK-ARM中,我们可以根据自己的情况(不同配置),在map文件中输出对应(我们需要)的内容。默认情况下,输出所有信息。
Project -> Options for Target -> Listing:会看到如下配置界面:
看到上图,相信都应该明白map文件大概有哪些内容了吧?
map文件里面内容大致分为五大类(按照map文件分类的顺序):
1.Section Cross References:模块、段(入口)交叉引用;
2.Removing ...
STM32F103 USB实现虚拟串口及相关问题解决方案
97bd27f48eb7098c827ab9821824ad8798dffabe64f290fca076d8a581cdeb9cfef194f23a54881d2d2d5dc086316309980805af2a9e61c73384592ceb1ff3cc40446550b1bf7636f8be793d94d08faa441bde15693814992a0218d54de2da404a6d37a033c6ae8b817815ea75168ccd0931d2c69cd920fedac398dca9a7b654004a7e98c156f32ab5345e0ce9c6d57eaa3200d2e7da9b23ee525daa4784b2385b574f93ad808ecbf3c9ada4cf76a67eb71a9b97f115713b0d8c55f019d1ce8a525ca931bff4348c13276ed8d24e09f29b5aad7d1b7e1729e72f0d1b9c7d82ff6b379931d943fb6cffebf6f401eb836611ab673a6e46fa5f6 ...
如何实现自定义串口通信协议
如何实现自定义串口通信协议1 什么是通信协议通信协议不难理解,就是两个(或多个)设备之间进行通信,必须要遵循的一种协议。
百度百科的解释:
通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。
2 过于简单的通信协议引发的问题下面这种过于简单的通信协议虽然也能通信,也能传输数据,但存在一系列的问题。
问题1:多个设备连接在一条总线(比如485)上,怎么判断传输给谁?(没有设备信息)
问题2:处于一个干扰环境,你能保障传输数据正确吗?(没有校验信息)
问题3:我想传输多个不确定长度的数据,该怎么办?(没有长度信息)
帧头
温度值
帧尾
5A
一字节数值
3B
3 通信协议常见内容基于串口的通信协议通常不能太复杂,因为串口通信速率、抗干扰能力以及其他各方面原因,相对于TCP/IP这种通信协议,是一种很轻量级的通信协议 ...
STM32利用DMA发送无法正确发送数据的问题
STM32利用DMA发送无法正确发送数据的问题1 现象在子函数中,定义了一个局部变量sendbuf[8] ={1,2,3,4,5,6,7,8},然后分别利用普通串口发送函数发送可以正常发送和利用DMA发送,并利用串口调试助手查看,发现助手可以正确接收普通串口发送函数所发出的数据,而对于DMA发送的数据,接收到的是一堆乱码。
2 原因1、 普通串口发送函数是阻塞型的,比如将上述sendbuf[8]每一个字节发送出去,低层代码逻辑是将1移位到串口的TX寄存器里,硬件检测到后在适当的时间发送出去。在未发送出去前,需要判断TX寄存器是否为空,即判断标志位USART_FLAG_TXE或者USART_FLAG_TC,如果没有发送成功就while阻塞(hal库中升级了,hal库设定超时机制,如果等待时间过长,就直接返回超时错误),一直阻塞到1发送出去后,再将2放到TX的寄存器里,一直将sendbuf[8]里的数发完为止。因此只要没有发送完,子函数就无法返回,在发送期间局部变量数组sendbuf是一直存在的。直到发送完成后子函数返回。
2、 DMA发送是非阻塞的。在子函数中调用DM ...
调节DAC输出电压范围的几种方式
调节DAC输出电压范围的几种方式1 DAC是什么DAC 的全称为 Digital to Analog Converter,即数字模拟转换器。它是一种将数字信号转换成模拟信号的电路,例如将数字音频信号转换为声音输出,或者将数字图像信号转换为可显示的图像。DAC 也可用于控制电机、电阻、电容等元件的输出量,实现精密调节和控制。在工业现场,例如 PLC 或者模拟 IO 口应用中,DAC 能够在不同通道上设置不同输出范围,对控制非常有利,这样用户就能够利用完整的 16 位数字码范围 (0 至 65,535),而不用考虑 DAC 的输出范围。本文以 ADI AD5362 为例,介绍快速调整不同通道输出电压范围的方法。
2 AD5362介绍下图 (图1) 为 AD5362 内部框图,它是一款集成 8 通道 16 位的 DAC,它提供的缓冲电压输出范围为基准电压源的 4 倍,各 DAC 的增益和失调可以独立进行调整,以消除误差。该器件分成两组,每组 4 个 DAC,具有更高的灵活性,且每组的输出范围可单独通过一个偏移 DAC 调节。
...