-
众所周知STM32有5个时钟源HSI、HSE、LSI、LSE、PLL,其实他只有四个,因为从上图中可以看到PLL都是由HSI或HSE提供的。 其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。 内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上...[详细]
-
在STM32L0中操作EEPROM本来参考了上篇操作FLASH的方法,多多少少都有些问题。我觉得可能是结构体在转换成其他变量的时候出了问题。比如下面这段代码,在Windows上可以正常运行(使用g++编译),但是在单片机上就会卡死。typedefstruct{uint8_tIDD;uint8_tzero;uint8_tdutyCorr;}usrfl...[详细]
-
在写单片机程序时我们一般喜欢使用printf来通过串口打印调试信息,但这个函数是不可以直接使用的,必须做点对库函数的改动。STM32MCUBE是ST官方提供的库以及初始化工具,很好很强大,但是在UART方面值提供了如下函数:HAL_StatusTypeDefHAL_UART_Transmit(UART_HandleTypeDef*huart,uint8_t*pData,uint16...[详细]
-
1硬件电路配置这里还是借用前面LED电路我就不贴图片。2时钟说明SysTick和HCK的时钟频率是一样的库函数代码如下/***@briefInitializeandstarttheSysTickcounteranditsinterrupt.**@paramticksnumberofticksbetweentwointerrupts*@return1=failed,0=su...[详细]
-
摘要:在看别人单片机程序时,你也许是崩溃的,因为全局变量满天飞,不知道哪个在哪用了,哪个表示什么,而且编写极其不规范。自己写单片机程序时,也许你也是崩溃的。总感觉重新开启一个项目,之前的写过相似的代码也无法使用,得重新敲,代码重用度不高,编程效率低下,代码无法积累。而且感觉写这个代码没有思想,没有灵魂,没有框架,只是一个一个功能代码的堆砌,很空泛。那么这个时候,你也许应该在单片机中引入...[详细]
-
一.双Bank机制STM32G系列的Flash支持Singlebankmode和Dualbankmode,Singlebankmode即常规的Flash模式,Dualbankmode会将Flash分为两块,正常情况下系统复位时会从Bank1启动,0x08000000对应为Bootloader复位向量,首先运行的代码为Bootloader。Bootloader跳转APP时...[详细]
-
今天在使用stm32f407的HAL库发现一个BUG。当时我中断使用多了、把所有time定时器使用了4个外部中断、不管怎么调整nvic不管用。这个时候HAL串口接收功能已经崩溃、已经无法正确接受数据、串口发送也会卡死。这个网上可以查到这个BUG是由于hal库运行速度缓慢导致的、目前没有很好的办法解决。这个时候我果断转了ll库、瞬间解决再也没有这些问题了。稳。当然这个bugF不管103...[详细]
-
前言本文主要讲解STM32H7系列的CACHE是如何使用的,以及能给程序带来怎样的提升,还有过程中遇到的问题以及解决方法。一、启用CACHE启用cache很简单,就是这两句,分别打开I-Cache和D-Cache,但是如果只使用这两句,再操作DMA和FLASH时就很有可能遇到问题,后面会具体说明。SCB_EnableICache();//使能I-CacheSCB_EnableDCa...[详细]
-
套件概述STM32C011F4Px_STSPIN220是一款基于STM32C011F4Px的低压步进电机驱动套件。其中,STSPIN220是一款步进电机驱动器,在一个小型VFQFPN3x3x1.0mm封装中集成了控制逻辑和低RDS(开启)功率级。该套件提供一整套保护功能,包括过电流、过热和短路保护,并且可以强制进入零消耗状态,从而显著延长电池寿命。最近在弄ST的课程...[详细]
-
#include"reg51.h"unsignedcharcount;//0.5ms次数标识sbitpwm=P2^0;//PWM信号输出sbitjia=P2^1;//角度增加按键检测IO口sbitjan=P2^2;//角度减少按键检测IO口unsignedcharjd;//角度标识voidd...[详细]
-
具体实现功能(1)能根据汉字和英文的内码不同显示不同的汉字和英文字符,初始显示“电子工程师成长日记”;(2)可以多样化显示:从左到右,从右到左,从下到上,从上到下;(3)可以键盘控制显示花样;(4)可以利用“点阵LED字模生成工具”生成自己想要显示的字符。仿真演示视频:https://www.bilibili.com/video/BV1aF4m177vD/?vd_source=c...[详细]
-
1.NandFlash分类:2.MLC和SLC对比:3.信号引脚:Nandflash的读:页读:页地址随机读:页地址+列地址今天是要实现页读:需要页的地址。我们来看芯片手册K9F2G08U0A.pdf:找到桉叶读的工作原理图:寄存器NFCONT:在这个寄存器里的【1】位:上面就是选择操作nandflash的位:...[详细]
-
1.时钟初始化1.1时钟初始化分析1)晶振频率2)有几个PLL3)PLL会产生那些时钟4)产生的时钟是干什么的eg:S3C2440:1)晶振12MHz 2)有MPLL、UPLL3)MPLL产生FCLK、HCLK、PCLKUPLL产生UCLK4)S3C6410:1)晶振12...[详细]
-
1,找到u-boot-2010.03/include/configs/smdk6410.h//#defineCONFIG_NET_MULTI//#defineCONFIG_CS8900/*wehaveaCS8900on-board*///#defineCONFIG_CS8900_BASE0x18800300//#defineCONFIG_CS8900_BUS16/*...[详细]
-
单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生,在一定的时间内(通过计数器)没有喂狗信号输入给看门狗则表示MCU出现问题,自动会给处理器发送复位信号,是MCU重新启动,是系统正常运转。STM32的独立看门狗有内部的专门40KHz低速时钟驱动,即使主时钟发生故障,它仍然有效。看门狗时钟十一个内部RC时钟,并不是准确的40KHz,而是在30~60...[详细]