单片机
文章平均质量分 89
whik1194
这个作者很懒,什么都没留下…
展开
-
毕业设计-两轮自平衡小车主控板
毕业设计——两轮自平衡车主控板原创 2022-07-06 23:29:30 · 1238 阅读 · 0 评论 -
Modbus驱动库—libmodbus驱动库的使用
文章目录为什么要使用驱动库?libmodbus简介libmodbus常用函数Windows平台libmodbus 使用1.获取源代码2.生成config.h配置文件3.编写测试代码4.编译测试代码Linux平台下libmodbus使用ARM平台下libmodbus使用libmodbus 从机地址限制的问题这篇文章是接上一篇Modbus协议简介,介绍Modbus实际项目应用,断断续续写了近两周时间。为什么要使用驱动库?上一篇文章,我们介绍了Modbus协议物理层和协议层,我们知道了Modbus是一种总线原创 2021-07-22 22:31:03 · 31684 阅读 · 24 评论 -
免费/中文/功能强大的Modbus调试软件:MThings
文章目录什么是Modbus调试软件MThings简介MThings下载与安装MThings使用教程MThings软件界面什么是Modbus调试软件简单来说,Modbus调试软件就是串口助手,或网络调试调试助手,只不过增加了协议分析,CRC计算报文帧拼接的功能。上一篇文章介绍了Modbus协议,物理层和协议层,主要包括3种模式:Modbus-RTU、Modbus-ASCII和Modbus-TCP。前两种是基于串口的,后一种是基于TCP网口的。基于串口的,我们完全可以使用普通的串口助手,如sscom,x原创 2021-07-22 22:29:29 · 8921 阅读 · 4 评论 -
一文看懂Modbus协议
文章目录Modbus是什么?4种数据类型3种传输模式3类功能码数据帧格式Modbus-RTU数据帧Modbus-ASCII数据帧Modbus-TCP数据帧两种请求模式单播模式广播模式Modbus地址规则Modbus扩展版本标准文档下载Modbus是什么?Modbus协议,首先从字面理解它包括Mod和Bus两部分,首先它是一种bus,即总线协议,和I2C、SPI类似,总线就意味着有主机,有从机,这些设备在同一条总线上。Modbus支持单主机,多个从机,最多支持247个从机设备。关于Mod,因为这种协议最原创 2021-07-07 09:38:35 · 6193 阅读 · 6 评论 -
一文看懂I2C协议
文章目录I2C是什么5种速率4种信号起始信号停止信号数据有效性应答信号非应答信号读写时序7位和10位地址I2C保留字节FPGA实测I2C波形SPI和I2C的对比官方标准文档下载1. I2C官方标准文档_UM102042. TI:理解I2C文档_SLVA7043. ZLG:I2C总线规范中文版I2C是什么在消费电子,工业电子等领域,会使用各种类型的芯片,如微控制器,电源管理,显示驱动,传感器,存储器,转换器等,他们有着不同的功能,有时需要快速的进行数据的交互,为了使用最简单的方式使这些芯片互联互通,于是原创 2021-03-21 09:11:17 · 2564 阅读 · 2 评论 -
一文看懂SPI协议
文章目录SPI协议简介4线还是3线?4种工作模式多种传输速率SPI协议的基本时序SPI协议的升级版FPGA实现SPI协议SPI和IIC的对比总结SPI协议简介板卡内不同芯片间通讯最常用的三种串行协议:UART、I2C、SPI,之前写过串口协议及其FPGA实现,今天我们来介绍SPI协议,SPI是Serial Perripheral Interface的简称,是由Motorola公司推出的一种高速、全双工的总线协议。与IIC类似,SPI也是采用主从方式工作,主机通常为FPGA、MCU或DSP等可编程控制原创 2021-02-21 15:44:41 · 13962 阅读 · 3 评论 -
CRC校验原理及其C语言实现
文章目录目录前言CRC算法简介CRC参数模型CRC计算CRC校验CRC计算的C语言实现CRC计算工具总结参考资料目录前言CRC算法简介CRC计算CRC校验CRC计算的C语言实现CRC计算工具总结前言最近的工作中,要实现对通信数据的CRC计算,所以花了两天的时间好好研究了一下,周末有时间整理了一下笔记。一个完整的数据帧通常由以下部分构成:校验位是为了保证数据在传输过程中的完整性,采用一种指定的算法对原始数据进行计算,得出的一个校验值。接收方接收到数据时,采用同样的校验算法对原始数原创 2020-09-27 22:00:06 · 17881 阅读 · 20 评论 -
21个常用的CRC参数模型C语言实现
文章目录开源地址常用的21个参数模型CRC计算工具C语言实现开源地址GitHub:https://github.com/whik/crc-lib-cGitee:https://gitee.com/whik/crc-lib-c包含常用的21个CRC参数模型实现常用的21个参数模型CRC计算工具在线计算工具:www.ip33.com/crc.html离线计算工具:CRC_Calc v0.1:http://xz.w10a.com/Small/CRCJISUANQI.zip格西CRC计原创 2020-09-27 21:49:44 · 3691 阅读 · 1 评论 -
Keil环境下使用Jansson构建JSON——基于STM32F103
文章目录构建普通的JSON键值对构建嵌套的JSON对象包含数组的JSON对象Jansson解析JSON示例:使用Jansson库解析JSON构建普通的JSON键值对JSON字符串:{ "status": true, "age": 20, "score": 78.4, "name": "whik1194", "blog": "https://blog.csdn.net/whik1194", "wechat": "mcu149"}JSON构建函数:#include "jansson_原创 2020-09-15 11:47:37 · 1707 阅读 · 9 评论 -
C语言查表法实现CRC-16计算
文章目录函数实现示例代码运行结果函数实现/* 16 bit CRC with polynomial x^16+x^12+x^5+1*/uint16_t crc16_compute(const uint16_t initial_value,const uint8_t *data,const uint32_t data_length){ uint16_t crc = initial_value; uint32_t idx = 0; const uint16_t crc原创 2020-09-10 16:59:00 · 2763 阅读 · 1 评论 -
C语言查表法实现CRC-32 IEEE 802.3算法
CRC-32 IEEE802.3校验算法C语言实现原创 2020-09-10 11:29:47 · 6145 阅读 · 7 评论 -
关于SPI Flash那些你不知道的事儿
文章目录和EPROM的区别块、扇区、页傻傻分不清地址范围常用指令以华邦W25Q128为例,详解SPI Flash的特点,读写注意事项,和地址范围等。和EPROM的区别以AT24C02 EPROM和W25Q128 SPI Flash为例。EPROM通常采用是IIC串行总线,低速,单双工,通信速率一般是百KHz。而SPI Flash是采用的SPI总线,高速,全双工,通讯速率一般是百MHz。SPI Flash属于Flash ROM闪存,相比于EPROM,读写速度更快。EPROM通常用于存储不频繁读取的原创 2020-06-25 14:11:34 · 10369 阅读 · 1 评论 -
Keil环境下Jansson解析库的使用——基于STM32F103
文章目录前言Jansson的安装示例1:纯键值对示例2:键的值是一个对象示例3:键的值是一个数组前言之前我曾经写过几个JSON解析库的使用方法:Qt平台下使用QJson解析和构建JSON字符串使用cJSON库解析JSON使用cJSON库构建JSON对于嵌入式开发,比较常用的就是cJSON解析库了,但是使用这个库对内存开销比较大,需要大量使用malloc和free进行动态内存分配和释放。对于单片机这种资源短缺的芯片来说,简直是太吃力了。使用STM32等单片机,不能解析多层JSON时,还需要调大原创 2020-06-20 17:15:20 · 5814 阅读 · 14 评论 -
JLink-OB下载程序失败解决版本(附JFlash任意版本程序下载地址)
如果使用Jlink或JLink-OB进行程序下载时,提示如下下载失败信息:* JLink Info: Found SWD-DP with ID 0x2BA01477* JLink Info: AP-IDR: 0x24770011, Type: AHB-AP* JLink Info: AHB-AP ROM: 0xE00FF000 (Base addr. of first ROM table)* JLink Info: Found Cortex-M3 r2p1, Little endian.* JLi原创 2020-06-05 19:24:25 · 6259 阅读 · 3 评论 -
手把手教你DIY尼康ML-L3红外遥控器
文章目录项目介绍拆解ML-L3遥控器基于Arduino的实现基于STM32的实现基于FPGA的实现实际使用效果总结代码获取参考资料推荐阅读项目介绍ML-L3是用于尼康部分型号相机的无线红外遥控器,可以通过红外方式来控制快门的释放,支持B门拍摄。官方售价100RMB左右,山寨版售价10RMB左右。虽然也能实现基本的遥控功能,但是功能还是比较单一,如不能实现定时拍摄,即用来拍摄制作延时视频的素材。...原创 2019-11-16 17:43:34 · 2518 阅读 · 0 评论 -
基于STM32的RGB调色器——STM32程序和Qt上位机全开源
文章目录前言项目介绍uFUN开发板STM32下位机Qt上位机我的评测文章关于我前言uFUN开发板1.0版本评测时,基于Qt写了个小上位机,可以通过串口来控制板子上的RGB灯,通过控制,可以混合出任意的颜色,今天整理了一下,开源这个Qt上位机和STM32代码。项目介绍基于uFUN开发板,实现通过Qt上位机控制uFUN开发板RGB灯亮度,主要包括STM32下位机程序和Qt上位机程序。Git...原创 2019-10-25 22:28:59 · 2118 阅读 · 0 评论 -
使用cJSON库解析JSON
cJSON库的下载cJSON是一个基于C的JSON解析库,这个库非常简单,只有cJSON.c和cJSON.h两个文件,支持JSON的解析和封装,需要调用时,只需要#include "cJSON.h"就可以使用了,库源码下载地址:cJSON downloadJSON官方网站:json只包含键值对的JSON字符串解析JSON字符串:{ "name": "Andy", ...原创 2018-12-04 20:37:19 · 4576 阅读 · 2 评论 -
织女星开发板启动模式修改——从ARM M4核启动
前言刚开始玩织女星开发板的时候,想先从熟悉的ARM核入手,连上Jlink,打开MDK版本的Demo程序,编译OK,却检测不到芯片,仔细看了一下文档,原来RV32M1芯片默认从RISC-V核启动,如果想要调试下载ARM核程序,需要切换为ARM核启动,然后按照文档操作步骤,完成了启动模式的修改,现在分享给大家。RV32M1芯片内核简介织女星开发板主控芯片RV32M1,片上集成了四个核。两个RI...原创 2019-05-28 17:31:17 · 1044 阅读 · 0 评论 -
【ST开发板评测】使用Python来开发STM32F411
前言板子申请了也有一段时间了,也快到评测截止时间了,想着做点有意思的东西,正好前一段时间看到过可以在MCU上移植MicroPython的示例,就自己尝试一下,记录移植过程。MicroPython是什么程序猿中有句俗语:人生苦短,我用Python。Python的强大和易用性让它不仅可以写网站,编程序,在嵌入式领域也有一席之地。MicroPython,是Python3编程语言的一个完整软...原创 2019-06-04 22:45:21 · 4391 阅读 · 0 评论 -
真正的RISC-V开发板——VEGA织女星开发板开箱评测
前言由于最近ARM公司要求员工“停止所有与华为及其子公司正在生效的合约、支持及未决约定”,即暂停与华为的相关合作,大家纷纷把注意力投向了另一个的处理器架构RISC-V,它是基于精简指令集(RISC)的一个开源指令集架构。相比于其他指令集,“RISC-V 指令集可以自由地用于任何目的,允许任何人设计、制造和销售 RISC-V 芯片和软件”,正是由于这种开放性,于2015年成立的RISC-V基金会...原创 2019-06-22 15:00:12 · 6490 阅读 · 0 评论 -
Qt平台下使用QJson解析和构建JSON字符串
前言上一篇介绍了C语言写的JSON解析库cJSON的使用:使用cJSON库解析和构建JSON字符串本篇文章介绍,Qt开发环境下QJson库的使用示例,JSON解析配合API接口,就可以实现一些有趣的工具了,如全国油价查询工具,全国天气查询,空气质量查询,黄历查询,生活指数等等实用工具的开发。分享几个免费的API提供平台:K780:http://www.k780.com/api天气API...原创 2019-07-23 22:05:02 · 1799 阅读 · 1 评论 -
使用cJSON库解析和构建JSON字符串
使用cJSON库解析和构建JSON字符串前言其实之前的两篇博文已经介绍了json格式和如何使用cJSON库来解析JSON:使用cJSON库解析JSONJSON简介当时在MCU平台上使用时,会出现时间长了死机的情况,在调用cJSON_Print输出格式化后的JSON数据之后, LOG("JSON数据:\n%s\n", cJSON_Print(root)); 要使用cJSON...原创 2019-07-21 23:13:56 · 735 阅读 · 0 评论 -
详解串行通信协议及其FPGA实现
前言好久没更新博客了,这篇文章写写停停,用了近一周的时间,终于写完了。本篇文章介绍,串口协议数据帧格式、串行通信的工作方式、电平标准、编码方式及Verilog实现串口发送一个字节数据和接收一个字节数据。对于MCU串口的发送接收,可能就是1行代码就能实现串口的发送和接收:STM32的串口接收和发送//STM32发送1个字节USART_SendData(USART1, 'A'); whil...原创 2019-08-23 20:03:11 · 6802 阅读 · 2 评论 -
whik1194_博客文章汇总
为了方便朋友查看,也方便我自己查找,整理了CSDN博客所有的文章链接,如下。另外,我的个人博客和个人公众号也会同步更新!我的博客:www.wangchaochao.top我的公众号:mcu149最新文章详解串行通信协议及其FPGA实现ST32F407外部晶振改为25M后芯片死机检测不到芯片的解决办法阿里平头哥首次交货——玄铁910是个啥?是芯片吗?历史文章2...原创 2019-08-24 21:45:24 · 740 阅读 · 0 评论 -
STM32F407外部晶振改为25M后芯片死机检测不到芯片的解决办法
问题:使用正点原子的STM32F407代码,下载到外部晶体为25MHz的开发板上,LED不闪烁,串口无输出,单片机直接死机,调试器检测不到芯片。问题分析:正点原子的STM32F407探索者开发板,焊接的是8M的晶体,而官方固件库里默认为25M的晶体,所以在正点原子的开发教程和示例代码中都把官方库做了一定的修改,即:官方固件,适用于外部25M晶体:stm32f4xx.h文件122行:...原创 2019-08-12 16:28:02 · 3375 阅读 · 1 评论 -
手把手教你制作Jlink-OB调试器(含原理图、PCB、外壳、固件)
前言好久没更新博客和公众号了,感谢大家还没取关哈,好吧,我承认是我太懒了,今天分享一个福利!趁着前段时间嘉立创和捷配打价格战,一天之内,多次降价,看着真是热闹。捷配降到最低3元一款,而嘉立创降到最低5元一款,都是顺丰包邮,不过嘉立创免颜色费,而捷配不免,本着吃瓜群众的态度,赶紧薅了一把羊毛,做毕业设计时买的元器件还剩一些,就把之前练手画的一块JlinkOB小板投出去了,之前都是用的嘉立创,......原创 2019-05-10 18:22:04 · 10063 阅读 · 17 评论 -
国产处理器的逆袭机会——RISC-V
前言今天天气阴沉,刚才又下起了小雨,温度骤降,前几天脱下的秋裤,今天又穿上了,这天气真是变化无常。上周六(4.20)参加了一场关于RSIC-V的技术沙龙,第一次真正了解了RISC-V架构,正好今天不打算出门,准备总结一下这次研讨会,也了解一下RISC-V这种架构。我是上周四(4.18)在公众号【嵌入式系统资讯精选】看到说周六会在北航举办一个RISC-V的技术沙龙,正好周末也没有其他的安排,所以...原创 2019-05-04 16:13:26 · 2277 阅读 · 0 评论 -
Jlink使用技巧之合并烧写文件
前言IAP(In-application-programming),即在应用中编程。当产品发布之后,可以通过网络方便的升级固件程序,而不需要拆机下载程序。IAP系统的固件一般由两部分组成,即BootLoader Code和Application Code,并存储在不同起始地址的空间里:系统运行时,先运行Bootloader程序,检测状态,判断是执行应用程序还是升级固件。在实际开发过程中,这两...原创 2019-01-17 14:48:33 · 3540 阅读 · 0 评论 -
两行代码搞定博客访问量统计
我的博客有访客统计功能啦,看看实现的效果原始计数代码<!-- 不蒜子计数 --><script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><span id="busuanzi_c原创 2018-10-29 21:29:00 · 4009 阅读 · 7 评论 -
Jlink使用技巧之读取STM32内部的程序
前言上一篇Jlink系列文章介绍了如何使用J-Flash来下载Hex或Bin文件到单片机,具体可参考Jlink使用技巧之单独下载HEX文件到单片机,本篇文章介绍,如何使用JFlash来读取单片机的程序,学习单片机程序文件的读取,不是为了破解别人的程序,而是学习破解的原理,从而更好保护自己的程序不被破解,希望大家也能尊重他人的劳动成果。JFlash的下载和安装首先,安装JFlash软件,安装完...原创 2019-01-06 20:26:35 · 9455 阅读 · 2 评论 -
Jlink使用技巧之单独下载HEX文件到单片机
前言上一篇文章介绍了使用Keil下载单独的Hex文件到单片机内,本篇文章介绍,如何使用SEGGER官方软件JFlash来进行程序的下载,支持Hex和Bin文件。JFlash的下载和安装首先,安装JFlash软件,安装完成后,会默认安装JLink驱动程序,主要包含以下几个工具:JFlash,主要用于程序下载和读取。JFlashLite,JFlash的Mini版JFlashSPI,用于给.........原创 2019-01-05 11:36:35 · 10445 阅读 · 1 评论 -
使用Keil下载单独的Hex文件到单片机内
前言初学STM32时,是通过串口1把Hex文件下载进STM32的,需要一个串口模块,而且还要设置BOOT0和BOOT1电平,然后通过FlyMcu软件进行下载,这也是一种不错的方法,这里我要介绍的是使用JLink调试器和Keil MDK-ARM来下载Hex文件,无需源代码,只需要一个调试器。所需要的工具和软件Hex文件,如Demo_STM32.hexKeil软件,v4或v5版本,如Keil...原创 2019-01-04 22:30:28 · 4099 阅读 · 0 评论 -
百度智能手环方案开源(含源码,原理图,APP,通信协议等)
分享一个百度智能手环开源项目的设计方案资料。项目简介百度云智能手环的开源方案是基于Apache2.0开源协议,开源内容包括硬件设计文档,原理图、ROM、通讯协议在内的全套方案,同时开放APP和云服务的免费使用。这套方案不仅能实现运动记录、睡眠记录检测、时间显示、来电提醒等常规功能,还整合了百度健康云服务,为用户提供基于数据整合的衍生健康服务。百度智能手环基于Nordic公司nRF51822芯...原创 2018-12-27 00:24:47 · 7583 阅读 · 0 评论 -
JSON格式简介
最近自己在做一个基于ESP8266和STM32的桌面天气时钟,需要使用到JSON解析,所以系统学习一下JSON,这篇文章我们先来了解一下JSON的基本格式。啥是JSONJSON: JavaScript 对象表示法( JavaScript Object Notation) 是一种轻量级的数据交换格式。 它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式, 但是也使用了...原创 2018-11-18 21:52:21 · 657 阅读 · 0 评论 -
elf格式转换为hex格式文件的两种方法
这周工作终于不太忙了,可以写点笔记总结一下了。今天看了一下后台,增加了好多关注者,真是受宠若惊啊!当然也有了更大的动力和压力,这么多天不更新,现在还关注的都是真粉丝啊!感谢!之前的文章如何在Keil-MDK开发环境生成Bin格式文件,介绍了如何在Keil开发环境使用fromelf软件,将生成的axf文件转换为bin文件,这次我们再来介绍一下如何将elf文件转换为hex文件。如何将elf文件转...原创 2018-11-13 17:02:09 · 3197 阅读 · 0 评论 -
一个将十六进制转换为二进制字符数组的函数
十六进制数转换为二进制数组的函数HexToBinStr函数实现:void HexToBinStr(int hex, char *bin_str, int str_size){ int i; for (i = 0; i !=str_size; ++i) { bin_str[str_size - 1 - i] = hex % 2 + '0'; ...原创 2018-10-29 21:33:06 · 4957 阅读 · 0 评论 -
两个HC-05蓝牙模块互相绑定构成无线串口模块
关于HC-05蓝牙模块蓝牙模块BT-HC05模块是一款高性能的蓝牙串口模块。可用于各种带蓝牙功能的电脑、蓝牙主机、手机、PDA、PSP等智能终端配对。宽波特率范围4800~1382400,并且模块兼容单片机系统。当主从模式两个蓝牙模块配对成功后,可以简单的,更改为无线的蓝牙,让您设备或者产品更高级,更时尚。可以很容易的使用提供的蓝牙手机软件工作模式HC-05嵌入式蓝牙串口...原创 2018-10-29 21:30:54 · 2092 阅读 · 0 评论 -
Jlink使用技巧之J-Scope虚拟示波器功能
J-Link简介J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。简单地说,是给一个JTAG协议转换盒。其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议。它完成了一个从软件到硬件转换的工作。配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4,...原创 2018-10-29 21:29:54 · 5608 阅读 · 4 评论 -
Keil开发环境如何生成BIN文件
为什么需要BIN文件呢?有些烧录器只支持BIN文件。进行OTA远程升级时,只能使用BIN文件。使用JLink脚本文件进行一键烧录时,只支持BIN文件。BIN文件要比HEX和AXF文件小的多。但Keil默认生成的是AXF和HEX文件格式,那BIN怎么来生成呢?Keil配置生成BIN文件Keil自带了一个小工具,可以通过执行指令来将AXF文件转换为BIN文件这就需要调用一个外部程序f...原创 2018-10-29 21:27:57 · 786 阅读 · 0 评论 -
Jlink使用技巧系列教程索引
近两个月,写写停停,总算完成了这个系列的教程,不容易啊!Jlink使用技巧系列文章:以下是各文章的链接,直接点击即可进入阅读。Jlink使用技巧之合并烧写文件Jlink使用技巧之烧写SPI Flash存储芯片Jlink使用技巧之虚拟串口功能Jlink使用技巧之读取STM32内部的程序Jlink使用技巧之单独下载HEX文件到单片机Jlink使用技巧之J-Scope虚拟示波器功能...原创 2019-01-17 15:19:32 · 4862 阅读 · 1 评论