STM32
学无止境2022
吉德林法则,把难题清清楚楚地写出来,便已经解决了一半。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MCU主频 服务器台式机主频 处理器主频那些事
后来工艺改良了单片机也设计也改良了,CPU可以耐受的主频提升了,所以制造出了所谓的6时钟周期51单片机(6分频,主频2MHz)和1时钟周期的51单片机(1分频,主频12MHz,叫1T单片机)。IP 核可以划分为CPU、GPU、DSP、VPU、总线、接口等6个类别,也可按软核、固核、硬核分类。当前 SoC已成为功能最丰富的硬件,集成了 CPU、GPU、RAM、ADC、DAC、Modem、高速DSP 等各个功能模块,部分SoC还集成了电源管理模块、各种外部设备的控制模块,同时还需要考虑各总线的分布利用等。原创 2023-09-12 09:35:56 · 833 阅读 · 0 评论 -
段错误(核心已转储)的本质
coredump叫做核心转储,实际上也就是进程运行过程中的一个内存快照,当进程crash的时候,操作系统接收异常指令之后,在进程crash之前,会把进程做一个内存快照,将这些信息保存在一个文件中,这个文件就是coredump文件。可执行文件是分段存储的,加载进内存也是分段的,如代码段、数据段、堆、栈等,段错误的原因往往是碰到了不该碰到的内存位置(如系统保留段、代码段不能被修改,使用空指针等)。core,核心(线圈),没有半导体之前,使用线圈内存,指代内存。stm32发生段错误会跳转到硬件错误中断。原创 2023-06-28 17:38:20 · 649 阅读 · 0 评论 -
zi data远大于ram容量为啥程序还能正常运行
没有问题, 编译的时候keil选用了优化。这个zi-data可能库,或者是你的字库或者点阵,如果程序中确实没用到,优化的时候不会编译进hex文件,你要看生成的hex文件大小。原创 2023-05-31 12:43:49 · 1171 阅读 · 0 评论 -
OSC_in 和 OSC_out 引脚 OSC32_IN和OSC32_OUT
顾名思义在OSCout端可以输出正弦波,给别的器件提供振荡源,这个时候最好在两者之间加上一个56p左右的电容用来抑制频率的直流漂移。在示波器上可以清楚的看到振荡源形成的正弦波已经不是在电压0位置了。所以需要用电容滤除直流分量。一般在单片机上都有 OSCin 和 OSCout 两个晶振接入端口 ,我们可以用无源的晶振加上起震电容可以配合单片机是晶振起震,为系统提供时钟源。本文引用地址:http://www.eepw.com.cn/article/201611/323616.htm。原创 2023-03-28 08:44:23 · 19958 阅读 · 0 评论 -
jlink支持 国民MCU
文件已保存到自己网盘。原创 2023-03-24 16:16:25 · 295 阅读 · 0 评论 -
keil 无法直接生成bin文件 fromelf:格式转换工具
在Keil MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。示例: fromelf --bin --output=outfile.bin infile.axf。*.bin格式的文件在很多情况下也是需要的,借助Keil MDK 的工具既可以实现。本文将描述fromelf.exe工具的用法及bin 文件生成.输出文件语法(两种皆可以)其余具体选项可以参照上图。原创 2023-03-24 13:58:41 · 391 阅读 · 0 评论 -
STM32的Flash 具体是哪种flash?
单片机内部的Flash应该是nor flash,因为,在使用程序对Flash进行读写与擦除时,都是要按一个页一个页的进行操作的。这与nor的特性是一样的。单片机中的程序是在Flash中运行的,nor flash的速度是比较快的,EEPROM是很慢的,大多都是400K的吧。nand是串行的,速率也是慢的。原创 2023-03-17 15:25:07 · 793 阅读 · 0 评论 -
现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。
因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层), 也不需要第5层(会话层)第6层(描述层)的作用。现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。原创 2023-03-14 11:50:49 · 527 阅读 · 0 评论 -
stm32系统定时器的作用
系统定时器,又称滴答定时器,在使用OS(操作系统)时,其主要作用是为OS提供中断信号,让OS执行任务调度,当不使用OS时,我们常用它来进行精确延时。stm32系统定时器的时钟源是那个?原创 2023-03-14 11:39:09 · 241 阅读 · 0 评论 -
32单片机裸机开发 时间片的作用 留出更多的时间给重要的任务去占用CPU
重要的任务10ms执行一次 不重要的任务100ms 或者500ms执行一次。32单片机逻辑开发 时间片的作用 留出更多的时间给重要的任务去占用CPU。原创 2023-03-10 16:11:35 · 310 阅读 · 0 评论 -
stm32读取raM中的数据并口?
并行通信接口80808060原创 2023-03-09 00:10:43 · 229 阅读 · 0 评论 -
static修饰的函数是可以被其他文件使用的
C语言和内存是紧密相关的,static主要是在编译链接阶段起作用,指导链接器将不同的函数按照链接脚本链接成可执行文件。一旦程序加载到内存中进行运行,那就没有什么static修饰的函数这种概念了,每个函数都一样,你能拿到函数指针就可以运行函数,这也是通过传递函数指针来调用static修饰的函数的原理。1.在文件中定义一个对外提供的函数,该函数在内部调用static修饰的函数,这就实现了间接调用static修饰的函数。2.将static修饰的函数的函数指针传递出去,其他文件可以通过函数指针进行调用。原创 2023-03-08 09:40:26 · 1361 阅读 · 0 评论 -
STM32移植lwip之建立web服务器 linux下的web服务器搭建
adadf。原创 2023-02-27 11:18:25 · 561 阅读 · 0 评论 -
栈空间是如何被编译器开辟释放的?
记得最清楚的是栈有谁管理? 一般只能是由编译器或者os来管理,网上很多文章是说编译器管理的,但是一般一个程序跑起来之后,编译器怎么对他施加影响呢?到现在我都还是不明白。原创 2023-02-21 10:56:17 · 661 阅读 · 0 评论 -
单片机开发平台 下载程序和调试程序 的原理 (Jtag SWD)linux下调试程序的方法
GDB大名鼎鼎的程序调试工具,这个是个全能的工具,没有完不成的,只有你不知道的。那现在就剩下远程调试接口这个环节了,这个问题解决了,就把第五个问题也解决了,因为不管是通用的SOC,还是定制的SOC,CPU核心都是一致的,要么是ARM,要么是MIPS,要么51等等。3. IDE->第三方厂商实现KEIL的接口->第三方厂商的远程调试接口->第三方调试器->硬件调试接口->CPU. 所以,我们在JLINK架构图中看到,RDI接口其实是JLINK厂商定义的接口,而不是IDE厂商定义的。如何回答这两个问题?原创 2023-02-09 16:39:07 · 1016 阅读 · 0 评论 -
STM32 GD32 keil 反汇编 根据 寄存器R14 MSP寄存器值 定位导致产生硬件中断的代码 查找产生硬件中断的原因
STM32跳至硬件错误中断(HardFault_Handle) 原因及参考解决方法。原创 2023-01-10 15:55:37 · 742 阅读 · 0 评论 -
在keil上编译linux下的STM32裸机工程 arm 编译器介绍
arm交叉编译器简单介绍。原创 2022-12-14 17:04:17 · 1163 阅读 · 0 评论 -
PCAN CANable CANDLELight USB转CAN CAN盒
PCAN又叫做PCAN-USB,也叫作CAN卡,是一个CAN转USB接口,可以将CAN网络上的报文通过USB接口传输到PC上,通过相关的软件来查看CAN报文。硬件设计是比较简单的,就是一块带usb和can的stm32f0 + CAN收发器TJA1051/3。CANABLE 一个比较牛X的开源CAN盒,包括硬件、软件、上位机(cangaroo)通过USB与PC通信,采用WINUSB无驱的方式,非常方便。硬件candleLight。原创 2022-12-14 16:09:21 · 3363 阅读 · 0 评论 -
ota升级就是iap的无线版本吗
OTA是Over-the-Air的简写,即空中下载技术,通过网络远程给用户进行系统更新和升级。IAP是In Application Programming的简写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。IAP主要包括BootLoader和应用程序两部分,基于IAP的OTA设计思路是先通过OTA接收升级固件,再利用IAP进行固件搬移、校验和程序跳转,实现空中升级的目的。原创 2022-12-14 11:26:34 · 2312 阅读 · 0 评论 -
产品量产 要用到脱机烧录器
上面两种(ISP SWD)都是要连着电脑的,适用于开发,在量产的时候要用到脱机烧录器,把程序放到烧录器里,然后直接拿着烧录器给一个个芯片下载程序。长这样,里面可以放几百个程序,按中间的蓝色按钮烧录。原创 2022-12-14 11:17:56 · 423 阅读 · 0 评论 -
isp,iap,sw-jtag
FLASH 的容量越来越大, ISP 的 USART 真的很慢了。Can 的效率也不是很高. USB 是个更好的替代方法。于是有了DFU模式。DFU全称为Device Firmware update,是ST官方推出的一个通过USB接口进行IAP升级的方案,同串口ISP一样,他们都集成在了芯片内部的Bootloader区段,可以通过配置boot引脚来启动。(具体可参照ST文档:AN2606)。原创 2022-12-14 10:52:40 · 598 阅读 · 0 评论 -
自己写启动程序 自己写链接文件(linux下的.ld文件,Keil中的分散加载文件(.sct文件)) 内存分区(flash ram) Reset_Handler()函数 去升级stm32 应用程序
制作dfu文件,第一步就是要自己ide生成hex文件或者bin文件,之后用专用的软件将生成的hex或者bin文件生成dfu文件。或者跳到以下链接,这是我自己上传的安装包 DfuSeDemo&&Dfu_File_Manager.zip。其中的dfu模式就是属于isp模式的一种。还需要自己写引导程序以及应用iap的方式去升级。对于大多数可以升级的产品来说,dfu升级是最简单快速的方法之一。对于stm32来说,有几种烧录程序的方式,分别是isp,iap,sw-jtag。制作stm32 dfu类型的文件升级包。原创 2022-12-13 17:47:30 · 1573 阅读 · 0 评论 -
使用jflash可以将芯片flash中的程序(16进制格式)读出来 jflsah软件在jlink驱动包里面
没使用到的区域都是FF原创 2022-12-13 15:47:44 · 1162 阅读 · 0 评论 -
CMSIS hal库 标准库 pack(芯片支持包)
SVD相当于把传统的芯片手册(DATA SHEET)给“数字化”了,手册是给人看的,而SVD采用XML文档结构化的方式,是给机器、开发环境、MDK/IAR等软件“看”的,SVD文件中定义了某个芯片的非常详细的信息,包含了哪些片内外设,每一个外设的硬件寄存器,每一个寄存器中每一个数据位的值,以及详细的说明信息等等。是最基础的,为Cortex-M内核的处理器和外设定义应用程序接口也包括一致的系统启动代码。官方给的源代码,使用的是NXP的单片机LPC4320做的,已经有很多朋友移植到了不同的单片机上。原创 2022-12-13 14:41:59 · 1637 阅读 · 0 评论 -
单片机的调试接口 JTAG SWD
PB4 NJTRST ------JTAG复位引脚(NJTRST,低电平有效)PA15 JTDI ------JTAG 数据输入引脚(JTDI)PA13 JTMS SWDIO ------JTAG 模式选择引脚(JTMS)PA14 JTCK SWCLK ------JTAG时钟引脚(JTCK)PB3 JTDO ------JTAG数据输出引脚(JTDO)JTAG-DP 和 SW-DP。原创 2022-11-25 13:06:13 · 7028 阅读 · 0 评论 -
学习无线通信 无线数据传输 要了解那些基本概念
信号的调制解调 为什么要进行调制解调?原创 2022-11-23 17:41:36 · 231 阅读 · 0 评论 -
go to 语句需要注意的点 坑
go to 只是跳过中间语句,直接执行p1.go to 语句需要注意的点。就算不执行go to p1;原创 2022-11-16 17:07:00 · 313 阅读 · 0 评论 -
串口一直进空闲中断(并不是空闲就会一直中断) 清中断标志位没用
1.空闲中断是接受数据后出现一个byte的高电平(空闲)状态,就会触发空闲中断.并不是空闲就会一直中断,准确的说应该是上升沿(停止位)后一个byte,如果一直是低电平是不会触发空闲中断的(会触发break中断)。导致主程序无法运行。原创 2022-11-11 14:24:40 · 3736 阅读 · 0 评论 -
stm32MP1系列 这是Sopc吗
STM32MP157是目前整个STM32MP1系列最强的,STM32MP1系列是多核异构形式的,包括一颗或两颗 Cortex-A7,外加一颗Cortex-M4内核。Cortex-A7 就是为了运行 Linux 这样的富操作系统,Cortex-M4可以看做一个M4内核的单片机,类似 STM32F429,可以运行对实时性要求比较高的控制应用,也可以运行FreeRTOS、UCOS 这样的RTOS类操作系统。原创 2022-10-10 10:07:08 · 850 阅读 · 0 评论 -
ADC采样率(HZ)是什么怎么计算
低功耗 蓝牙 智能手表原创 2022-07-07 16:56:19 · 14590 阅读 · 0 评论 -
记几个智能手表相关芯片 蓝牙芯片 低功耗
低功耗 蓝牙 智能手表原创 2022-07-01 09:45:20 · 2103 阅读 · 0 评论 -
模拟串口UART的实现
模拟串口原创 2022-06-21 11:37:23 · 900 阅读 · 0 评论 -
c#和c++的区别 语法上的区别 运行原理上的区别
运行原理上的区别C#和C ++的区别详细说明1、编译区别C#代码首先会被编译为CLR(公共语言运行库),然后由.NET框架解析。C ++代码将会直接被编译为机器代码。2、内存管理的不同C#是在虚拟机上执行,会自动进行内存管理。C ++需要手动组织管理内存。3、指针使用的区别C#不支持使用指针,但可以使用一些不安全的类和方法;C ++允许使用指针。不用指针的C#比C++更安全。指针引起的内存泄漏啥的问题还是蛮费脑的。4、系统环境(平台)的区别C#主要用于Windows环境;C ++是原创 2022-05-23 18:54:50 · 5388 阅读 · 0 评论 -
PLC和单片机的区别 哪个更有发展前景?
https://blog.youkuaiyun.com/weixin_43982452/article/details/118343740?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165268388916781667814109%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=165268388916781667814109&biz_i原创 2022-05-16 15:03:26 · 701 阅读 · 0 评论 -
STM32和GD32的GPIO引脚的default(默认) alternate(引脚复用) remap(引脚重映射)三种用法 别把复用和重映射当一回事儿
引脚复用功能该怎么配置??打开GPIO总线时钟打引脚重映射该怎么配置???原创 2022-04-28 11:04:26 · 8651 阅读 · 4 评论 -
stm32烧写失败Contents mismatch at: 08000000H (Flash=FFH Required=00H)问题的修复方法
stm32烧写失败Contents mismatch at: 08000000H (Flash=FFH Required=00H)问题的修复方法正常使用的pcb板子,在使用的过程中,突然不能正常烧写,报错如下:在检查复位电路(复位引脚3.3V经过10K电阻上拉)、芯片供电无误后,判断为芯片自身问题。具体解决方法如下:打开STM32 ST-LINK Utility软件,使用ST_link连接电脑和板子,打开Target-connect,连接时,会报flash sectors read protect的警原创 2022-04-14 17:29:33 · 3225 阅读 · 1 评论 -
关于stm32的寄存器的基地址和偏移地址,如果没有库给我们封装好的寄存器地址,我们该如何去自己查手册去操作外设寄存器来控制外设?
基地址偏移地址原创 2022-04-08 09:38:14 · 772 阅读 · 0 评论 -
预分频值(prescaler)和时钟分频因子(ClockDivision)有什么区别?
1、prescaler 是用来分频来自APBx的时钟频率,然后提供给定时器,作为定时器的心跳。2、ClockDivision是对于输入的分频,在输入捕获的时候要用到,相当于滤波。关于定时器时钟分频因子(ClockDivision)和预分频系数(Prescaler)https://blog.youkuaiyun.com/qq_44312911/article/details/117983858?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164原创 2022-04-07 16:27:49 · 9487 阅读 · 0 评论 -
stm32的主频配置
stm32中主频的超频实验https://blog.youkuaiyun.com/weixin_45402928/article/details/107736981?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164923443816782246473122%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=16492344381678224647原创 2022-04-06 16:42:27 · 2123 阅读 · 0 评论 -
stm32单片机和linux从上电到运行应用程序的过程
我们在写单片机逻辑程序时再启动文件中,初始化一些必要的外设比如时钟 ram flash等等,准备好c语言运行环境,然后进入main在main里面先是初始化我们是用到的外设,包括片内外设 定时器 adc gpio (led灯,按键等)还有一些主机控制器或者说总线控制器的驱动spi iic usb,uart等等,除了这些片内设备,还有一些片外的板级外设,比如eeprom,mcp2515,led灯,按键,wm8896,4g芯片,以太网芯片,网卡,等等以上这些统称为硬件的驱动程序。然后进入while死循原创 2022-03-09 00:57:34 · 2075 阅读 · 0 评论
分享