• STM32 内部FLASH和外部FLASH两种方式实现IAP升级

    时间:2024-04-08 14:51:15

    芯片型号STM32F103RET6,flash大小512K,起始地址0x08000000一般说STM32内部FLASH就是指主存储器区域 【注】此实验中启动方式设置为复位后从主闪存存储器启动(BOOT0拉低)IAP实现流程为,上电复位后,先执行bootloader(启动程序),在bootloader...

  • STM32野火库学习笔记

    时间:2024-04-08 14:50:27

    长期习惯于在一些大的店家的成熟库源上进行开发,每当调用函数无法使用时都要回过头来重新阅读库的内容,与其这样支离破碎的学习,不如系统性的把库研究一遍。反正STM32的普适性是很高的,并且库这个东西各家都很相似,学一家基本就可以了。本来是大二下学期的规划居然拖到大四做,也是惭愧。内核结构:存储单元:Fl...

  • 【STM32】STM32F103VCT6工程移植

    时间:2024-04-08 14:48:49

    在ZET6的原始版本基础上,对配置进行修改。 首先需要更改器件型号.S启动文件选择 根据标准 ld:<=32K md:64~128K hd:256~512K查看规格书,可以知道STM32F103VCT6的资源为25k,使用HD.S启动文件,与ZET6一致,不需要进行更改。STM32F103xC...

  • STM32 之 USB IP(USB模块) 详解

    时间:2024-04-08 14:43:22

    模块分类  在 STM32 众多系列的 MCU 中,USB模块并不是相同的,官方称呼为USB IP 不同。总的来说可以分文两大类:USB IP、OTG IP。这两种 IP又可以进行更进一步的细分,如下图: 上图中罗列的芯片并不是很全面,某些新系列的芯片可能与上图有出入。各IP的主要区别如下:USB ...

  • STM32使用串口ISP下载异常的问题解决

    时间:2024-04-08 14:42:59

    最近开始接触STM32,刚开始很不适应,和51相比还是有区别的,光是MDK安装和STM32的库安装就花了点时间。(之前以为MDK和keil是一个玩意儿,因为看到身边有人就是用keil’写32的程序)在此感谢同学的帮助。今天打算试试烧录,因为手边没有现成的Jlink或STlink下载器,就想试试串口i...

  • KEIL识别不出野火STM32仿真器问题解决

    时间:2024-04-08 14:42:34

    开发板:野火STM32 F429 V2KEIL:keil5.15问题:仿真器指示灯正常(绿色),但是keil识别不出来解决方法:网上说的更新Keil,管理员运行keil均没有解决。我的解决办法:查看设备管理器,发现电脑识别的结果如下图所示:这是不对的,需要做如下图调整:修改后结果:...

  • LwIP学习笔记——STM32 ENC28J60移植与入门

    时间:2024-04-08 14:40:57

    0.前言    去年(2013年)的整理了LwIP相关代码,并在STM32上“裸奔”成功。一直没有时间深入整理,在这里借博文整理总结。LwIP的移植过程细节很多,博文也不可能一一详解个别部分只能点到为止。    【本文要点】    【1】不带操作系统的LwIP移植,LwIP版本为1.4.1。    ...

  • STM32建立工程模板时出现错误:error: #67: expected a “}“

    时间:2024-04-08 14:30:39

    在MDK5开发环境中使用到标准库建立工程时,常常会出现以下编辑错误error: #67: expected a 更改方法:options —> c/c++ —> Preprocessor Symbols —> Define:将STM32F10X_MD改为STM32F103_MD...

  • 原子哥STM32软件仿真时间不一致的问题

    时间:2024-04-08 12:41:36

    在进行STM32F10x精英版的软件仿真,绘制PB5和PE5的比特位变化曲线的时候,发现跳变的间隔和代码中的delay_ms(300)时间不一致,猜测是因为系统时钟引起的,后查看软件仿真的系统时钟发现果然如此,需要使用8MHz的系统时钟才可以。具体设置如下:这这里将xtal设置成8Mhz即可,恢复正...

  • 【STM32CubeMX】11,STM32之CAN回环测试,过滤器的匹配设置,FIFO与过滤器的关联

    时间:2024-04-07 22:55:35

    1,因为自己目前只有一块板子有CAN模块,所以先做CAN的回环测试。主要参考http://www.stm32cube.com/question/33下面的代码测试可以使用1-1,在CAN的编程中,主要是注意四大结构体,这几个都是自动生成的,1、CAN_HandleTypeDef  hcan1;// ...

  • 关于STM32的系统时钟、PLL倍频系数、AHB预分频器、APB预分频器的值在什么时候,在哪里设置的

    时间:2024-04-07 21:13:17

    很多人平时用STM32的时候一般都不会考虑STM32的内部各种时钟(HCLK、PCLK1、PCLK2等)问题。只知道一个系统时钟频率。但是当你看到STM32的时钟树的时候有没有发现STM32内部的各个时钟都是由分频器或者PLL锁相环来确定的。STM32时钟树图(如下图)那么问题就来了,这些分频器和锁...

  • stm32预分频器和自动重装载寄存器减1问题

    时间:2024-04-07 21:12:53

    在设置预分频器时候,要减去1,比如2分频,那么在在TIMx_PSC寄存器中写入的值就是2−1=12-1=12−1=1,而不是2在设置自动重装载寄存器的时候也要减去1,比如要填的值是1000,则要往TIMx_ARR寄存器中写1000−1=9991000-1=9991000−1=999...

  • stm32串口输出丢失第一个字符的问题及原因

    时间:2024-04-07 12:39:27

    因为TC和TXE 标志位在复位的时候会被置1,导致第一次没有发送。所以在初始化串口的时候可以增加一句 USARTx->SR=0;(如 USART1->SR=0;)

  • STM32关于IAR和Keil中如何查看代码段的大小

    时间:2024-04-06 22:25:28

    今天在看IAP下载的时候发现需要知道自己编译出来的代码段的大小来设置FLASH的偏移量,在keil下编译默认是会显示程序的大小的:可以清除的看到代码(Code)占了29704个字节,只读常量(RO-data)占6456个字节,已初始化的全局变量(RW-data)占64个字节,未初始化的全局变量(ZI...

  • 基于stm32的grbl写字机器人(添加舵机支持)

    时间:2024-04-06 22:16:48

    背景:在移植grbl到stm32的时候,源代码在Z轴抬笔控制支持使用的是步进电机,但是我手头上只有一个9G舵机,并且网上售卖的步进电机体积偏大不宜安装在Z轴笔架上,所以需要阅读代码,在了解Z轴的控制基础上,修改添加舵机支持。基本信息:正点原子战舰stm32f103zet6,Grbl Controll...

  • 串口通信相关知识总结及STM32串口通信原理

    时间:2024-04-06 19:38:05

    串口相关知识总结一:处理器与外部设备通信的两种方式1:并行通信:数据各个位同时传输,传输速度快,但是占用引脚资源较多2:串行通信:数据按位顺序传输,占用引脚资源较少,传输速度较慢二:数据传输方向1:单工模式(Simplex Communication)的数据传输是单向的。通信双方中,一方固定为发送端...

  • STM32 PB3或者PB4不能正常使用的讲解

    时间:2024-04-06 19:06:29

    最近用STM32F103T8做项目,发现PB3和PB4这两个IO不可控,一直是高电平;原因是PB3和PB4在系统复位时候,分别默认为SYS_JIDO和SYS_HJTRST;所以需要通过用户自行禁止其功能;也就是想要正常使用PB3和PB4的主功能的时候。在初始化IO时候,增加代码如下:(这里使用J-L...

  • stm32 EXTI问题 是否同时选择PA0与PB0?

    时间:2024-04-06 19:06:03

    需要14个外部输入中断,画原理图时, 将XIN0~XIN7接在PB8~PB15,XIN8~XIN13接在PA8~PA13上了后来写程序时才注意到手册上的一个图无法同时将PA0与PB0或者其他同时绑定到EXTI0线上,并且由于外部中断触发的先后也不确定,所以在中断函数中重新绑定中断线也不可行,看来,如...

  • STM32 PB4不能做普通IO解决方法

    时间:2024-04-06 18:52:16

    PB4默认是JTAG引脚,并置于上拉模式,所以没法直接当做普通的IO口拉低。可以复用为SWD下载方式,那么PB4就可以“省出来了1      (RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);打开时钟  复...

  • stm32地址偏移:为什么相邻寄存器的地址偏移量是0x04?

    时间:2024-04-06 18:48:27

    前段时间第一次接触stm32地址偏移的概念时,非常的困惑,以GPIO寄存器为例,为什么相邻寄存器的偏移地址是0x04?困惑1:当时以为,0x04是一个十六进制数,由8个二进制数组成,所以偏移地址实际上偏移了8位。然而教学视频上一再强调,偏移地址0x04是偏移了4个字节(32位)。解惑1:由于产生困惑...