历史上的今天
返回首页

历史上的今天

今天是:2025年06月10日(星期二)

正在发生

2021年06月10日 | 50条STM32单片机学习笔记

2021-06-10 来源:eefocus

1、AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2>1,意思是APB2接高速设备


2、Stm32f10x.h相当于reg52.h(里面有基本的位操作定义),另一个为stm32f10x_conf.h专门控制外围器件的配置,也就是开关头文件的作用


3、HSE Osc(High Speed External Oscillator)高速外部晶振,一般为8MHz,HSI RC(High Speed InternalRC)高速内部RC,8MHz


4、LSE Osc(Low Speed External Oscillator)低速外部晶振,一般为32.768KHz,LSI RC(Low Speed InternalRC)低速内部晶振,大概为40KHz左右,提供看门狗时钟和自动唤醒单元时钟源


5、SYSCLK时钟源有三个来源:HSI RC、HSE OSC、PLL





6、MCO[2:0]可以提供4源不同的时钟同步信号,PA8



7、GPIO口貌似有两个反向串联的二极管用作钳位二极管。




8、总线矩阵采用轮换算法对系统总线和DMA进行仲裁



9、ICode总线,DCode总线、系统总线、DMA总线、总线矩阵、AHB/APB桥


10、在使用一个外设之前,必须设置寄存器RCC_AHBENR来打开该外设的时钟


11、数据字节以小端存储形式保存在存储器中


12、内存映射区分为8个大块,每个块为512MB


13、FLASH的一页为1K(小容量和中容量),大容量是2K。


14、系统存储区(SystemMemory)为ST公司出厂配置锁死,用户无法编辑,用于对FLASH区域进行重新编程。所以我们烧写程序务必选择BOOT1 = 0,这样通过内嵌的自举程序对FLASH进行烧写,比如中断向量表和代码


15、STM32核心电压为1.8V


16、STM32复位有三种:系统复位、上电复位、备份区域复位。其中系统复位除了RCC_CSR中的复位标志和BKP中的数值不复位之外,其他的所有寄存器全部复位。触发方式例如外部复位、看门狗复位、软件复位等;电源复位由于外部电源的上电/掉电复位或者待机模式返回。复位除了BKP中的寄存器值不动,其他全部复位;备份区域复位的触发源为软件复位或者VDD和VBAT全部掉电时。


17、单片机复位后所有I/O口均为浮空输入状态


18、68个可屏蔽中断通道,16个可编程优先级,16个内核中断,一共68+16=84个中断。103系列只有60个中断,107系列才有68个中断


19、系统启动从0x00000004开始,0x000 0000保留


20、(NestedVectored Interrupt Controller)NVIC嵌套向量中断控制器,分为两种:抢先式优先级(可嵌套)和中断优先级(副优先级,不能嵌套)。两种优先级由4位二进制位决定。分配下来有十六种情况:






21、0号抢先优先级的中断,可以打断任何中断抢先优先级为非0号的中断;1号抢先优先级的中断,可以打断任何中断抢先优先级为2、3、4号的中断;……;构成中断嵌套。如果两个中断的抢先优先级相同,谁先出现,就先响应谁,不构成嵌套。如果一起出现(或挂在那里等待),就看它们2个谁的子优先级高了,如果子优先级也相同,就看它们的中断向量位置了。原来中断向量的位置是最后的决定因素!!!!


22、上电初始化后AIRC初始化为0,为16个抢先式优先级,但是由于所有的外部通道中断优先级控制字PRI_n为0,所以抢先式优先级相同,此时就不能嵌套了


23、NVI中有ISER[2](Interrupt Set-Enable Registers),ICER[2](Interrupt Clear-Enable Registers),ISPR[2](Interrupt Set-Pending Registers),ICPR[2](Interrupt Clear-Pending Registers),IABR[2](Active Bit Registers),IPR[15](InterruptPriority Registers)定义。其中ISER和ICER分别为中断使能和中断失能寄存器,都是写1来使能/失能中断的。为什么写1?为什么不采用一个寄存器而用两个寄存器来表示中断使能/失能状态?由于硬件,写0比较复杂,并且可能造成其他位的状态改变,所以用1来表示打开或者关断是比较合理的


24、中断标志位需要手动清除


25、配置外围器件的一般步骤:1、打开端口时钟。2、定义初始化结构体并初始化。3、调用


26、串口的奇偶校验:如果是奇偶校验,那么USART_InitStructure.USART_WordLength= USART_WordLength_9b;这个数据的长度必须设定为9位!


27、ADC的规则组可以自定义转换通道顺序和转换的通道个数。在实际应用中,有时候希望有一些特别的通道具有很高的优先权,需要在规则组进行转换的时候强制打断,进行另一个通道的转换,这样一组通道,叫做注入组。


28、定时器的输出比较模式:Timing(冻结,什么都不做,普通定时),Active(OCxREF输出高电平有效),Inactive(OCxREF输出低电平),Toggle(比较成功后翻转电平)。


29、STM32的定时器从0开始计数,满足一些条件,给出标志位(比如匹配成功、时间更新、溢出等)然后从0开始计数。这一点和51不同。


30、OCx=OCxREF+极性


31、自动装载寄存器和影子寄存器:前者相当于51当中的溢出设定数值。而影子寄存器顾名思义是影子,就是寄存器的另一分copy。实际起作用的是影子寄存器,而程序员操纵的则是自动装载寄存器。如果APPE位使能,表明自动装载寄存器的值在下一次更新事件发生后才写入新值。否则,写入自动装载寄存器的值会被立即更新到影子寄存器。





32、RCC_PCLK1Config(RCC_HCLK_Div4)CLK1的4分频给定时器基准时钟



33、定时器配置:RCC、NVIC、GPIO(OC输出或者PWM)、TIMx


34、通用定时器可以输出4路不同的PWM,高级定时器可以输出4路不同的PWM外,还可以输出3路互补的PWM信号(驱动三相电机),一共有7路。这样算出来STM32可以产生30路PWM=7*2+4*4


35、





36、高级定时器时钟源挂在了APB2上,而通用定时器挂在APB1上。AHB(72mhz)→APB1分频器(默认2)→APB1时钟信号(36mhz)→倍频器(*2倍)→通用定时器时钟信号(72mhz)。如果APB1没有分频,那么通用定时器的时钟信号频率就直接等于APB1的时钟频率,没有上述的倍频器*2过程。TIM_SetAutoreload()用来改变PWM的频率,TIM_SetCompare1()用来改变占空比



37、有刷电机一般启动力矩大一些,无刷电机启动力矩小,运行起来力矩大。有刷电机采用电刷机械电流换向,而无刷电机则通过霍尔传感器测出转子的电流来判断电机的运动位置和方向,返回给控制回路。


38、死区是必须要有的,因为这涉及到电路的短路问题。晶闸管在换向的时候需要死区时间来彻底关断线路


39、刹车功能用来在控制回路出现问题时,硬件自动给予外部电机进行紧急刹车制动,反应在PWM上持续给出一个固定的占空比?(三相驱动也是?)


40、PWM输出最好采用PWM模式,其他的比较输出模式相位会慢慢改变,不精准


41、对FLASH的读写需要先解锁后加锁。FLASH写0容易,写1难。


42、下载程序有两种方式,一种为ICP(在线编程),适用于JTAG或SWD协议下的烧写程序。另一种成为IAP(在应用编程),适用于很多接口(USB,串口,CAN)下载到存储器中,IAP允许在程序运行时重新烧写FLASH


43、FLASH分为主存储器(这里放置用户的程序代码)和信息块(启动代码),除此之外,还有一部分叫做系统存储器,这一块用户不可操作,为ST公司出产后固化,为系统的上电自举程序


44、FLASH在写的时候,一定不能读,如果有读操作,那么将会锁住总线


45、对FLASH操作时,必须打开HIS


46、STM32有两种看门狗(IWDG独立看门狗《独立时钟》,WWDG窗口看门狗《由APB1分频而来》)


47、SPI的的最高频率为36MHz(fpclk/2)


48、 TIM1和TIM8高级定时器在输出PWM时,需要配置一下主输出功能(CtrlPWMOutputs)才能输出PWM。其他的通用定时器不需要这样配置。但是TIM6和TIM7没有PWM输出功能。


49、Code为程序代码部分

RO-data 表示程序定义的常量(如:const temp等);

RW-data 表示已初始化的全局变量

ZI-data 表示未初始化的全局变量,以及初始化为0的变量

Code, RO-data,RW-data..............flash

RW-data, ZIdata...................RAM

初始化时RW-data从flash拷贝到RAM


50、STM32F103ZET6有144个引脚(Z为144),其中,可用IO口为112个(7X16=112,ABCDEFG口)


推荐阅读

史海拾趣

Chemtronics公司的发展小趣事

自1958年成立以来,Chemtronics公司在电子维护和维修领域不断进取。最初,公司专注于生产一系列清洁剂产品,以其高效清洁能力获得了市场的认可。随着时间的推移,Chemtronics逐渐将产品线扩展至超纯溶剂、净化室级别擦拭棒和擦拭布等领域,进而又扩展到电子电气和电信工业的精密返工和维修工具。这一转变不仅体现了公司对市场需求的敏锐洞察,也彰显了其不断创新的精神。

中移物联网(Chinamobile)公司的发展小趣事

中移物联网在智能终端产品的创新方面也取得了显著成果。公司设计并生产了物联网专用模组和芯片,打造了智能组网、智能安防、智能家居、智能穿戴等行业终端。这些产品在市场上受到了广泛欢迎,特别是在智能家居和智能穿戴领域,中移物联网的产品凭借其高性能和稳定性,赢得了众多消费者的青睐。

Hi-G Relays公司的发展小趣事

中移物联网自2012年成立以来,便致力于物联网专用网络的建设。根据中国移动的整体战略布局,公司开发并运营了物联网连接管理平台OneLink和物联网应用开放平台OneNET,为各行业提供稳定、高效的物联网连接服务。这些平台的建立,不仅满足了市场对于物联网连接的需求,也为公司后续业务的拓展奠定了坚实基础。

Concord Semiconductor Corp公司的发展小趣事

为了进一步提升市场竞争力,Concord Semiconductor Corp积极寻求与其他企业的战略合作。通过与全球领先的电子设备制造商建立长期合作关系,公司成功将其产品打入国际市场,实现了业务的快速增长。同时,公司还与多家研究机构展开技术合作,共同研发新型半导体材料和技术,为公司的长远发展提供了有力支撑。

EDSYN公司的发展小趣事

随着智能能源市场的不断发展,Econais也积极拓展该领域的应用。通过与能源公司的合作,Econais的Wi-Fi模块被广泛应用于智能电网、智能家居和分布式能源管理等领域。这些应用不仅提高了能源利用的效率,也为用户带来了更加便捷和舒适的体验。Econais凭借其在超低功耗和高性能无线产品方面的技术优势,成功在智能能源市场占据了一席之地。

CYANLITE公司的发展小趣事

CYANLITE公司非常重视产品品质的管理和控制。他们建立了严格的质量检测体系,确保每一件产品都符合高标准的质量要求。此外,公司还注重客户反馈的收集和分析,不断改进产品和服务以满足客户的需求。这种对品质的执着追求使得CYANLITE公司赢得了客户的信任和忠诚。许多客户都表示愿意长期与CYANLITE公司合作,并推荐他们的产品给其他人。

问答坊 | AI 解惑

制造业环境适合RFID实时数据应用的一些领域

[摘要]制造业的生产环节最有利实时数据的应用。因为制造商如果想真正改进工艺流程,就必须更好掌握生产现场发生的情况,以及管理层系统如何应对的情况。 \"Research and Markets\"刊物宣布在他们提供的报道中增添Real-time Data in Manufacturing ...…

查看全部问答>

做USBCAN中发现的问题。

我最近在做USB转CAN过程中发现USB通讯速度受主机的影响很大,我已经把单片机的RAM全部用来做FIFO了,但还是在主机比较忙时还是会出现丢包现像。如果我不进行电脑操作,通讯到2700包/秒也不会丢包,但只要我进行操作(开IE,开窗口)就会出现不同程度 ...…

查看全部问答>

Altium Designer Winter 09

请问Altium Designer Winter 09是怎样安装的.请把步骤告知,谢谢!…

查看全部问答>

智能小车部分电路集

本帖最后由 paulhyde 于 2014-9-15 04:23 编辑 智能小车部分电路集  …

查看全部问答>

PSDSoft Express软件生成的编程文件obj格式解析

各位好:     最近用到PSDSoft Express软件,其生成的编程文件obj中,包含:PLD映射,SRAM数据,EPROM数据,不知如何划分!因为编程PSD501芯片要用到这个文件.   另外,发现此软件生成的项目中,在生成obj文件之前,会自动 ...…

查看全部问答>

arm linux掉电保护问题

arm上安装的是linux系统,外存是flash和sd卡,正常工作时需要频繁访问sd卡。 在系统意外掉电时,经常发生sd卡错误的问题,在下次重新启动时,系统会检查到sd卡错误,并将sd卡自动设置为只读权限,这个问题有人能帮我想想办法么?? sd卡错误的原 ...…

查看全部问答>

最热门的嵌入式软件开发!

中国3G时代即将到来,社会对3G嵌入式软件人才的渴求使3G人才已经成为业界关注“3G软环境”的焦点之一。目前,我国的3G核心人才仅有不足万人,而且基本上都被几大运营商和设备厂商所掌握。广大手持端设备制造商所急需的嵌入式开发人才、软件开发商所 ...…

查看全部问答>

谁有TCPMP的文档或知道其组织结构

TCPMP的代码找到是找到了.可以,看了半天,没看懂.... 一点文档说明都没有.先请给位大人们..指点一下.... 只要能实现自动往playlist里面添加我想播放的文件即可. 找了半天没找到在那里...谢谢了…

查看全部问答>

同济大学软件学院——嵌入式操作系统培训公开课即将开课了

同济软件培训基地——微软嵌入式华东地区唯一授权中心     微软 WinCE 公开课程 尊敬的阁下:     当一个软件企业的嵌入式开发从无到有,或者当企业已有项目的投入,但发现项目进展缓慢,如何解决开发人员技术和资源的不 ...…

查看全部问答>

CortexM0菜鸟首日封

下载 (57.91 KB) 2010-7-6 02:11 …

查看全部问答>