STM32的I2C特性及架构:1 硬件实现协议:        由STM32的I2C片上外设专门负责实现I2C通讯协议,只要配置好该外设,它就会自动根据协议要求产生通讯信号,收发数据并缓存起来,CPU只要检测该外设的状态和访问数据寄存器,就能完成数据收发。这种由硬件外设处理I2C协议的方式减轻了CPU的工作,且使软件设计更加简单。   
单片机之STM32入门——(1)程序结构引言1.初识单片机1.1初始配置1.2程序下载2.GPIO的使用2.1资源下载2.2初始化源代码3.程序结构3.1文件的建立3.2程序结构源代码 引言这第一次博客便是记录寒假学习STM32之路,单片机这个倒是也听过很多了,但是一直没有系统的接触过,都只能算是小打小闹,以前说是还没有学过C语言,难以入手,但是现在回想来看,感觉倒像是自己每次在起步遇到困难就放
转载 2024-08-26 16:27:06
108阅读
文章目录前言一、STM32CubeMX是什么?二、安装环境1、java环境2、STM32CubeMX下载与安装3、支持包的安装总结 前言stm32已经火遍了大江南北,大约到2014年左右,ST在标准库的基础上又推出了HAL库 ,并且极力主推HAL库,所以这两年新出的STM32芯片,ST直接只提供HAL库。在新型的STM32芯片中,用HAL库逐步淘汰标准库。所以学习STM32CubeMX很有必要,
在最近的ctf比赛中,开始出现以stm32系列固件分析为代表的物联网安全类题目,由于这类问题涉及到嵌入式硬件、嵌入式系统等多方面的知识,未来出题、研究空间都非常广阔,这次就让我们借助题目一起来学习一下。由于考研失踪了很久,很多联系我的同学我也没能回复,希望大家原谅,之后一段时间我就正式回来啦。啥是stm32STM32是一种功能强大的32位的单片机,它基于低功耗的ARM内核,由于它采取的
     上一章将SYN6288代码移植进LD3320的代码中,实现了语音人机交互,接下来教大家把DHT11代码也移植进去上一章的语音人机交互的代码中,这样STM32就可以获取到DHT11采集的温湿度数据了,剩下的就是在User_Modification( )函数内对应“当前温度多少”和“当前湿度多少”的case下调用SYN_FrameInfo()
虽然Python在国外是一门非常火的语言,在黑客界更是赫赫有名,然而中国的大学却极少开设 Python 课程,故而国内 Python 程序员多属自学。而一个没有MCU编程经验的初学者,要想让芯片跑起来,出现问题有时候要对照一两千页的英文文档来排查,这也绝非一天两天可以打下坚实的基础。Python是一门适合初学者的语言相比于目前不少主流的编程语言,Python拥有更好的可读性,因此非常适合初学者。P
前面写过一篇文章,STM32 启动代码分析 。这个里面的ld .*.s 都是自动生成的,为了弄清原理自己手动实现一个先上三个代码stm32.ld, start.s, startup.c stm32.ld start.s startup.c startup.c2 先看看stm32.ld 连接脚本。 第1行,设置连接脚本的entry 函数为Reset_h
这是用stm32cubemx,hal库,硬件IIC的方式移植u8g2的教程:0.移植其实非常简单,文中代码较多只是因为我把官方的模板放上来了,实际上要写的代码只有三部分,代码量非常小的!如果不想看那么多,那么跟着前7步更改完库文件,然后精确定位到红色字加粗的三段代码处,把他们复制粘贴到main.c里就可以了。1.cubemx创建一个IIC工程,速率最好设置为400K,这样更新得快一点。然后连好线。
0、前言     一直以来都在寻找一个方便的、可靠的、丰富的点阵型LCD驱动库 ,因为大型的GUI解决方案并不适合像12864(基于7920)这种资源紧缺型的显示模组使用,而网络上充斥代码的资源都是简单实现了一个字符输出功能,达不到预期的目的。直到无意中看到了u8g2。通过学习后发现该显示库支持很多种字体fonts (英文和数字),而且具有完整的驱
转载 2024-05-09 16:05:13
536阅读
STM32CUBEIDE.2----生成简单的例程视频教学csdn付费课程生成例程查看HAL库手册生成案例工程设置代码最后视频教学听不到声音的请点击跳转进行观看。https://www.bilibili.com/video/BV1cB4y1m7bL/STM32CUBEIDE(2)----生成简单的例程csdn付费课程付费课程更加详细。生成例程使用STM32CUBEMX生成例程,这里使用NUCLEO
什么是启动代码? 启动代码是系统上电或者复位后运行的第一段代码,是进入C 语言的main 函数之前需要执行的那段汇编代码STM32的启动代码在startup_stm32f10x_hd.s 启动代码有何用? 它的作用是在用户程序运行之前对系统硬件及软件环境进行必要的初始化并在最后使程序跳转到用户程序
转载 2017-07-30 13:37:00
269阅读
IAP:在线升级代码 ,通俗的讲就是通过USART,IIC,或者SPI,USB等等,方式,在程序中升级程序,一般用在远程升级,或者是在PCB板子都安装到模具之后还需要升级代码,这样我们就需要,通过IAP的方式来升级。软件代码托管码云地址:https://gitee.com/zyzp/stm32UartIAP开发环境:MDK-V5,stm32cubeMx,SecureCRT8硬件平台:stm32f1
一、FSMC简介  FSMC(Flexible Static Memory Controller,可变静态存储控制器)是STM32系列采用的一种新型的存储器扩展技术。在外部存储器扩展方面具有独特的优势,可根据系统的应用需要,方便地进行不同类型大容量静态存储器的扩展。它可以用于驱动包括SRAM、NOR FLASH以及NAND FLASH类型的存储器,不能驱动如SDRAM这种动态的存储器而在STM32
最近做了一个飞行器,感觉使用jlink仿真器下载更新程序好复杂,每次都需要把一个大块头(Jlink)挂到飞行器上,操作极为不便,网上查了一下,stm32的程序烧写方式一共有三种(1)使用Jlink,JTAG等仿真器;这种方式简单快捷(2)使用系统自带bootloader,ISP,这种方式需要更改stm32boot0 boot1引脚,以更改启动方式。(3)使用ISP,即 in application
一般嵌入式开发流程就是先建立一个工程,再编写源文件,然后进行编译,把所有的 *.s文件和 *.c文件编译成一个 *.o文件,再对目标文件进行链接和定位,编译成功后会生成一个 *.hex文件和调试文件,接下来要进行调试,如果成功的话,就可以将它固化到 flash 里面去。启动代码是用来初始化电路以及用来为高级语言写的软件作好运行前准备的一小
转载 精选 2013-07-06 23:17:38
500阅读
1点赞
GPIOx_CRL(x=A~E) 地址偏移:端口配置的初始地址加上偏移地址就是该特殊寄存器的地址 GPIO通用输入输出8种工作模式 1.浮空输入模式: (1)当GPIOx_CRL或GPIOx_CRH寄存器的CNF[1:0]位设置为01,并且MODE[1:0]位设置为00时 (2)STM32复位之后默 ...
转载 2021-04-08 13:51:00
891阅读
2评论
STM32F407 Bootloader Ymodem 协议实现   相信很多人都希望,不开盖就可以对固件进行升级吧,就像手机那些。下文中的bootload就来实现这样的功能。        根据Ymodem协议,实现了一个STM32F407的Bootloader,该Bootloader能使用SecureCRT8中的Send Ymodem协议进行固
转载 2024-03-01 10:52:37
653阅读
本文讲述的是如何从零开始,使用keil建立一个简单的STM32的工程,并闪烁LED灯,给小白看。第零步,当然首先你得有一个STM32的板子,其IO口上接了一个LED。。。第一步,建立一个文件夹0.0第二步,打开keil,建立工程在弹出来的对话框中选择你所用的STM32的芯片。在接下来弹出来的对话框中选择是,这样keil就帮我们建立好了启动文件。 第三步,新建一个main.c文件,并添加到
转载 2023-06-19 15:27:24
969阅读
stm32在freertos系统下使用串口DMA接收方式对接freemodbus-rtu协议栈 文章目录stm32在freertos系统下使用串口DMA接收方式对接freemodbus-rtu协议栈前言码农工程师,人狠话不多,大家多看图和代码!!!一、准备工作cubemx配置dma初始化的一个注意点二、拆解freemodbus1.porttimer.c文件不再使用(不使用定时器判断接收完成),接口
转载 2024-03-17 00:43:12
1171阅读
1点赞
1评论
一、SysTick基础简介:SysTick系统定时器是 CM3 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit 的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系统时钟 SYSCLK等于 72M。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产生一次中断,以此循环往复。因为 SysTick 是属于 CM3 内核的外设,所以所有基于 CM3
转载 2024-05-16 14:20:13
528阅读
  • 1
  • 2
  • 3
  • 4
  • 5