针对stm32,stm8使用过程中的常见问题的解惑,涉及有stm32cubemx开发教程,stm32项目开发,还有站长做stmcu FAE的一些经验总结。

stm32L0无用户bootloader实现IAP

DK45 什么是IAP IAP-in application programming,就是在应用中编程的意思,在产品发布以后,不管是增加功能啊,或者对bug修复啊,都可以对原来固件进行更新升级。 传统IAP思路 基于stm32做的iap大多数的思路都是先设计一个bootloader,如果需要升级呢就跳转到bootloader用来更新……继续阅读 »

电子创客营 3周前 (12-28) 149浏览 0评论 0个赞

STM32在线升级中断向量重定向深度剖析

在做stm32 iap升级固件的时候通常需要多份中断向量表。比如bootloader的中断向量表在0x00000000位置,应用程序的中断向量表则会放在flash的另一个地方或者是放在RAM中运行。 要维护向量表位置就需要用VTOR这个东西,那么就要先从VTOR来聊聊, 先弄清这个东西又是干嘛的。 VTOR是arm内核的一个寄存器,叫做中断向……继续阅读 »

电子创客营 1个月前 (12-17) 191浏览 0评论 5个赞

STM32L0擦写EEPROM 无法执行代码?

在stm32L071cb 这个型号的mcu带了6k的eeprom,项目中正好需要用到存储一些参数,借用现成的何乐而不为呢 在测试代码中运行写入再次读取数据保证是正确的,也没有其他副作用。但是到真正派上用场的时候却挂了。在一上电的初始化过程中我会存储一些参数,而从程序打印的log信息来看,百分之八九十的情况都会运行到写入eeprom的时候程序卡死。当然……继续阅读 »

电子创客营 2个月前 (11-19) 455浏览 0评论 2个赞

STM32 CAN 发送的简单测试

can接口相对是一种常用的串行接口,但是不像spi、i2c、uart等接口都有主从的关系,can可以任何一个节点主动发送数据,并且假如出现总线冲突会有硬件来处理。 can和rs485又有些类似,都是把ttl信号转换成了差分信号。所以在stm32 使用can的时候会有一个can收发器。 从电路上看起来也很简单,stm32也是通过can t……继续阅读 »

电子创客营 3个月前 (10-28) 721浏览 0评论 3个赞

stm32L0 +freertos tickless低功耗

嵌入式实时操作系统运行中都会有一个系统时钟节拍,类似于人的心脏来驱动整个系统的运行。运行在arm cortex-m内核的单片机上的系统时钟用的最多的就是systick(属于arm内核带的)。使用stm32cubemx可以直接生成移植好的freertos工程,默认也会使用systick为系统时钟,时钟周期为1ms。 基于MCU的低功耗核心思想也很简单,……继续阅读 »

电子创客营 4个月前 (09-26) 859浏览 1评论 5个赞

STM32L0 ADC DMA多通道多次采集

之前写过一篇非dma方式adc多通道采集的文档:http://www.eemaker.com/stm32cubemxadc.html 不过之前是基于stm32F1系列来操作的。当使用L0系列按照之前的操作步骤操作并没有成功,so只能用中断或者DMA的方式来实现。L0相比原来F1系列的ADC有进行一些精简改动,所以对于adc的操作就不是完全一样的。 ……继续阅读 »

电子创客营 5个月前 (08-14) 1319浏览 4个赞

stm32cubemx 配置freertos中断优先级

stm32cubeMx 直接集成freertos,可以不需要自己手动移植只需要把freertos的选项勾选就可以。 但是生成的代码工程中,freertos暴露给用户的API接口并不是原生的freertos接口,是经过cmsis-rtos进行一次包装之后的。所以如果使用信号量、消息邮箱、定时器等等接口的时候要查询cmsis-rtos文档,并且c……继续阅读 »

电子创客营 8个月前 (06-06) 1684浏览 4个赞

MDK仿真下逻辑分析仪无法查看引脚变化

使用的单片机型号为stm32F103c8t6,该工程是基于stm32cubemx生成的。我记得之前我是使用过stm32f103系列在mdk下通过自带的虚拟逻辑分析仪观查引脚上变化波形的。只是今天再次用这个功能的是时候出现了点状况,添加PORTB.8的时候一直提示没有这个引脚,如下图所示。 在命令窗口对话框中输入 dir vtreg 可以查看能……继续阅读 »

电子创客营 1年前 (2019-01-08) 1743浏览 0评论 2个赞

keil下stm32工程直接烧入GD或其他兼容单片机

现在很多国内厂商做和stm32F103完全兼容的单片机,甚至有些源代码一点都不用修改烧进去就可以正常运行。 所以基于stm32的库、工具来直接开发这些单片机,最后直接烧录进去也是可以的。但是最近尝试的时候碰到一个问题,就是在mdk5下面,我基于stm32F103cb的工程,编译好以后烧录进其他兼容型号的单片机中会提示厂商ID不符。也就是mdk在烧录之……继续阅读 »

电子创客营 1年前 (2019-01-02) 1339浏览 2评论 2个赞

stm32 全局变量自己乱变

呵呵,什么奇葩问题都能遇到。在编写stm32的程序发现一个逻辑判断功能不正常。随机调试,发现自己定义的一个全局变量在确定没有代码操作他的情况下竟然在自己乱跳。 但是真理告诉我不要怀疑芯片的问题,不要怀疑编译器的问题。但是还是忍不住怀疑了一下。然并卵…… 但是呢,当我把代码里面的定时器关闭时,这个现象消失了。在定时器的中断函数中我就执行了一个操作,就是按键的扫……继续阅读 »

电子创客营 1年前 (2018-08-17) 2435浏览 0评论 2个赞