STM32系列单片机开发
文章平均质量分 92
Rleco.
编程基础非常拉胯的程序员。
展开
-
【知识分享】__RS485-嵌入式常用的通信协议
我们是气象水利行业,经常接触到的项目都是关于以下系统方案,其中RS-485是通讯中及其重要的连接方式:其实,我们在项目中经常用到的“通信”到底是什么?通信 = 通信协议 + 通信元素 + ...通信协议又称通信规程,是指通信双方对数据传送控制的一种约定。约定中包括对 {数据格式,同步方式,传送速度,传送步骤,检纠错方式,控制字符定义,等} 问题做出统一规定,通信双方必须共同遵守,它也叫做链路控制规程。通信元素信息表示、解析方法 + 信息的传输方法。RS-232RS-422RS-485等。另外,原创 2023-12-11 11:44:58 · 1083 阅读 · 2 评论 -
【嵌入式开发学习】__Keil MDK的优化选项
本文将围绕Keil MDK优化选项,以及相关拓展知识(微库、实际应用、调试)进行讲述,希望能对你的项目开发有所帮助。我们所指的优化,主要包括两个方面:代码大小(Size)代码性能(运行时间)当然,如果选择编译器(AC5、AC6)不同,优化选项也有差异(下面讲述)。某些项目MCU容量有限时,你除了修改代码(优化开支),同时你有必要使用优化选项。某些项目(比如某算法)需要高效(最短时间)运行,此时有必要使用优化选项。原创 2023-11-17 15:29:20 · 1808 阅读 · 0 评论 -
【嵌入式开发学习】__扒一扒单片机串口IAP原理
IAP是的首字母缩写,IAP是用户自己的程序在运行过程中对的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。在重新编程过程中可以使用任意类型的通信协议,如等。这篇笔记分享的是使用UART方式IAP。原创 2023-11-17 14:07:38 · 969 阅读 · 1 评论 -
【嵌入式项目应用】__单片机STM32有什么好的裸机程序架构思路推荐?
在我刚出来的时候,都没有程序架构的概念,基本一个while死循环干到底。模块之间也没有封装好,导致代码写好以后,扩展性和维护性太差,类似的功能代码,也很难移植到新项目去复用。早期我也是这样写的,反正实现功能就行了,代码好不好,功能上又看不出区别。不过,等你接触到复杂的项目时,这招就行不通了。原创 2023-11-16 11:10:55 · 447 阅读 · 0 评论 -
【嵌入式开发学习】__如何将BootLoader与APP合并成一个固件
嵌入式固件一般分为和,BootLoader用于等功能,BootLoader在应用程序。因此,在发布固件的时候,会存在BootLoader固件和App固件;此时我们期望是将BootLoader固件和App固件合并成为一个固件,这样在量产时只需烧录一次即可。原创 2023-11-09 00:22:59 · 707 阅读 · 1 评论 -
【嵌入式开发学习】__串口丢数据的几个常见原因
串口是工程师最常用的串行外设之一,但在实际应用中,还是会经常遇到各种问题,比如丢失一字节数据。今天,我们就结合STM32来讲讲UART相关内容,以及容易丢失一字节数据的问题。这里重点说一下UART状态寄存器中的几个标志位:TXETCRXNEORE这几个标志位在编程中经常使用,直接用函数库的同学可能没有关心过这几个标志位,数据丢失有可能就是对它们操作不当而导致出错。0:数据未传输到移位寄存器1:数据传输到移位寄存器。原创 2023-11-06 11:04:47 · 481 阅读 · 0 评论 -
【嵌入式项目应用】__cJSON在单片机的使用
在使用MQTT传输数据的时候,经常使用到JSON包,来进行数据的交互,这篇文章讲一下该如何使用cJSON库。原创 2023-10-24 20:22:52 · 2287 阅读 · 5 评论 -
【嵌入式项目应用】__UART自定义通信协议代码实现方法
通信协议不难理解,就是两个(或多个)设备之间进行通信,必须要遵循的一种协议。百度百科的解释:通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。相应该有很多读者都买过一些基于串口通信的模块,市面上很多基于串口通信的模块都是自定义通信协议,有的比较简单,有的相对复杂一点。原创 2023-11-02 11:20:45 · 1142 阅读 · 2 评论 -
【嵌入式项目应用】__cJSON基础介绍与代码测试
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。C语言开发中,你使用过cJSON吗?在介绍cJSON之前,我们先来认识一下JSON。。。原创 2023-11-02 10:43:09 · 506 阅读 · 4 评论 -
【嵌入式开发学习】__hex文件、bin文件、axf文件的区别
在STM32开发中,经常会碰到hex文件bin文件axf文件,这些都是可以烧写到板子里运行的文件。那么,你知道这三个文件有什么区别吗?原创 2023-11-01 17:25:20 · 135 阅读 · 2 评论 -
【嵌入式项目应用】__用于搭建调试输出、建立时间系统的嵌入式框架“Zorb Framework”
Zorb Framework是一个基于面向对象的思想来搭建一个轻量级的嵌入式框架。搭建Zorb Framework的目的是为在不能运行Linux的芯片上快速开发应用,不用反复造轮子。时间系统功能zf_time环形缓冲区功能zf_buffer列表功能zf_list状态机功能zf_fsm事件功能zf_event定时器功能zf_timer任务功能zf_task前6个功能,就可以实现纯事件驱动的程序,基本可以满足中小型嵌入式应用程序开发的需求。原创 2023-11-01 10:37:33 · 182 阅读 · 2 评论 -
【嵌入式项目应用】__单片机ADC,常用的C语言滤波算法
单片机ADC,常用的C语言滤波算法原创 2023-03-06 07:45:00 · 405 阅读 · 7 评论 -
《 STM32 ST-LINK Utility 》__代码下载工具下载、安装和使用说明(小白也能懂)
使用STM32 ST-LINK Utility上位机软件需要有一个ST-LINK工具才行。它的功能和J-Link对应的工具类似,用于烧写代码。STM32 ST-LINK Utility工具在产品开发过程中测试一些其他版本的代码,可以直接下载hex,而不用打开工程再编译去下载。当你开发完一个STM32产品,需要量产的时候,就可以用这个工具直接下载hex代码,对代码加密(读保护)。原创 2022-12-11 19:22:01 · 16131 阅读 · 19 评论 -
《 Keil MDK-Arm》__编译代码报错:Target uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available
Keil MDK_【keil5缺少旧编译器v5】Target ‘Template‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available.由于keil官网采用最新的编译器v6,导致keil5缺少旧编译器v5。***Target'Template'usesARM-Compiler'DefaultCompilerVersion5'whichisnotavailable.原创 2023-01-16 08:00:00 · 7377 阅读 · 13 评论