一、本篇所有所用环境、程序1.1 开发软硬环境芯片型号:STM32F103RCT6(魔女开发板家的,优点:代码清晰,缺点:只有标准库)开发软件:Keil5 (v5.31+AC5,最常用)代码用库:标准固件库蓝牙模块:HC-08(HC家的,小贵,配套图解、串口助手、APP、小程序,完美)USB转TTL模块:CH9340C (Type-C接口,win10可免驱动,比CH340和CP2102爽)1.2 代码下载链接百度网盘:https://pan.baidu.com/s/1UtYGUbFfMemFUGhN_LsNBg?pwd=6543csdn资源:https://download.csdn.net/
在软件开发领域,版本控制是非常重要的一环。它能够让我们追踪代码的变化、合作开发、管理不同的版本以及回滚到之前的状态。Git是一个流行的分布式版本控制系统,本文将向你介绍如何使用Git来管理你的代码(以keil工程为例)。一、GitBush的配置在使用git之前,我们需要对用户名,邮箱等信息进行配置,作为用户标识,方便对工程的使用、管理。界面美化一个好看的界面是必要的,我们可以通过打开GitBush后,点击上方的边框,选择Options来进配置。1,修改中文Options→Window→UIlanguage,选择zh_CN。2,界面配置我使用的配置如下:3,效果个人信息配置打开GitBush依次
本文笔者最近的项目是设计一款运动控制器,MCU使用的是STM32F429,要求是通过ModbusTCP协议实现与示教器通讯,并通过ModbusRTU实现与触摸屏通讯。本文将介绍在STM32F4上实现ModbusTCP和ModbusRTU通讯的过程。笔者才疏学浅,如有错误还请指正。一、FreeModbus介绍1.1 FreeModbus的获取Modbus协议是典型的主-从通讯结构,链路中只能有一台主设备,可以有多台从设备。主设备向从设备发送请求指令,从设备对该指令进行响应。从设备不能主动向主设备发送指令,并且从设备之间也不能进行通信。FreeModbus是一个开源的Modbus通信协议实现库。可
STM32WB55开发.6--FUS更新概述视频教学硬件准备样品申请存储器映射FLASH安全区设置SRAM安全区设置通过USB进行下载注意事项概述在STM32WB微控制器中,FUS(FirmwareUpgradeServices)是用于固件升级的一种服务。这项服务可以让你更新设备上的无线栈固件(如蓝牙、Zigbee或Thread栈),以及无线MCU(microcontrollerunit)的系统服务。FUS实质上是设备的一部分固件,它可以独立于主应用程序运行,主要负责安全地处理设备固件的升级。这包括检查新固件的有效性,确保新固件被正确地写入设备,以及在出现问题时回滚到旧版本的固件。总的来说,F
IIC原理介绍:IIC是一个总线的结构但不支持总线协议OLED介绍:一、0.96寸OLED屏幕介绍本文采用的是4针的0.96寸OLED显示进行讲解,采用的是SPI协议,速度会比采用I2C协议的更快,但这两者的显示驱动都一样,本质上没有太大差别。屏幕整体分辨率为128*64,有黄蓝、白、蓝三种颜色可选,驱动芯片为SSD1306二、SSD1306驱动芯片1)图像显示RAM(GDDRAM)GDDRAM是位映射静态RAM,大小为128x64位。GDDRAM分为8页(PAGE0~PAGE7),每页内1个SEG对应1Byte数据,一页由128Byte组成。即屏幕每8行像素点(8PIXEL)记为一页(PAG
写在前面:最近负责移植hal库的代码,以前一直用标准库和Keil,这次顺便好好学一下CubeIDE,虽然标题很唬人,但实际上就是一些不成系统的学习记录1.cubeMX生成的代码到独立的.c和.h文件默认设置点击代码生成,cubeMX会将初始化函数生成到main.c文件main函数下面在cubeMX的工程管理中勾选外设初始化生成到.c/.h选项,就会生成到独立的.c/.h文件中了2.添加头文件和源文件路径在keil5中一般不用添加源文件路径,但在cubeIDE中需要,否则会报错undefinedreference当然,如果你直接在由IDE自动创建的inc和src文件添加新文件,由于它自动包含了路
1问题描述最近项目上需要用到STM32F103VET6芯片。之前一直使用的是8年前的库,决定更新为最新版的固件库。在建立新工程编译时出现了以下错误:“…\OBJ\NH3NSTM32.sct(7):error:L6236E:Nosectionmatchesselector-nosectiontobeFIRST/LAST.”2问题分析2.1问题定位双击出错信息,Keil跳转到如下窗口:错误出现在“xxxx.sct”文件,sct文件,全名scatterfile,中文名分散加载文件,是ARM程序链接时的输入参数。默认设置下,Keil会自动生成.sct文件。出错的的“NH3NSTM32.sct”文件就是
写在前面:一个MCU越复杂,时钟系统也会相应地变得复杂,如STM32F1的时钟系统比较复杂,不像简单的51单片机一个系统时钟就可以解决一切。对于STM32F1系列的芯片,其有多个时钟源,构成了一个庞大的是时钟树。本节我们将学习时钟树的相关的内容。目录一、简述时钟二、时钟树详解2.1时钟源 2.2PLL锁相环2.3系统时钟SYSCLK2.4APB1、APB2时钟2.5其他时钟 三、配置系统时钟 3.1系统时钟配置步骤3.2利用HAL库配置STM32F1时钟系统3.3外设时钟使能一、简述时钟 时钟树简图:1、时钟源 HSE(高速外部振荡器)4-16MHz晶体或陶瓷L
目录:1.stm32时钟系统概述1.1.时钟系统的概念及意义1.2.常见振荡器简介1.3.stm32中时钟源的介绍2.stm32时钟配置3.SysTick定时器讲解3.1.SysTick定时器简介3.2.SysTick定时器工作原理3.3.systick每1s中触发一次中断代码实现3.4.systick相关寄存器分析4.HAL_Delay()函数的实现1.stm32时钟系统概述1.1.时钟系统的概念及意义概念:时钟系统是由振荡器(信号源)、定时唤醒器、倍频器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。意义:时钟是嵌入式系统的脉搏,处理器啮合在时钟的驱动下完成指令执行,状态转换等
参考资料:https://shequ.stmicroelectronics.cn/thread-619797-1-1.html《STM32中文参考手册》一、原理概述STM32的CAN支持时间触发模式,所谓时间触发,实际上就是记录当下发送或接收一帧CAN数据时的时间数据,这个时间数据并不是和平常意义上的时间戳那样从1970年1月1日开始记录到当下的时间,而是一个普普通通的16位计数器的计数值。工作原理是,当使能STM32的时间触发功能后,CAN内部的一个16位计数器就开始从0计数,计满65535后归零再开始一个新的计数周期,循环往复......这个计数器的计数频率是CAN的波特率(每个CAN位时