当前位置: 首页 > news >正文

中石油工程建设公司网站二手书网站的建设规模

中石油工程建设公司网站,二手书网站的建设规模,义乌网站,网站建设写1.1 寄存器开发 学过51单片机的同学应该知道,51单片机教程都是讲解的寄存器开发,但是这种开发方式对于STM32就变得比较困难,因为STM32的寄存器数量是51单片机的十数倍如此多的寄存器根本无法全部记忆, 开发时需要经常的翻查芯片手…

1.1 寄存器开发

学过51单片机的同学应该知道,51单片机教程都是讲解的寄存器开发,但是这种开发方式对于STM32就变得比较困难,因为STM32的寄存器数量是51单片机的十数倍如此多的寄存器根本无法全部记忆, 开发时需要经常的翻查芯片手册(找到对应的寄存器,在特定的比特位写入对应的值),直接操作寄存器就变得非常的费力了。但还是会有很小一部分人,喜欢去直接操作寄存器,因为这样更接近原理,知其然也知其所以然。

//基本流程 
//1.需求 通过gpio点亮LED2
//2.根据原理图-->对应的管脚 PC13
//3.根据芯片手册-->找到控制该管脚的相关寄存器 RCC_APB2ENR [4] = 1;  0x40021000+0x18GPIOC_CRH [23:20] = 0b 0010  //输出 2mhz 通用推挽0x40011000+0x4GPIOC_ODR [13]  = 0;   //输出低电平0x40011000+0xc//4.编程实现
#define RCC_APB2ENR *(volatile unsigned int *)0x40021018
#define GPIOC_CRH   *(volatile unsigned int *)0x40011004    
#define GPIOC_ODR   *(volatile unsigned int *)0x4001100C    
int main(void)
{RCC_APB2ENR |= (0X1<<4);GPIOC_ODR |= (0X1<<13);   GPIOC_CRH &= ~(0XF<<20);GPIOC_CRH |= (0X2<<20);while(1){GPIOC_ODR &= ~(0X1<<13);  //低电平 点亮mydelay(1000);GPIOC_ODR |= (0X1<<13);   //高电平 熄灭mydelay(1000);}
}    

1.2 标准库

STM32有非常多的寄存器从而导致开发困难,所以为此ST公司就为每款芯片都编写了一份库文件,也就是工程文件里stm32f10x_xxx.c 和stm32f10x_xxx.h。开发者可以调用库里面的函数接口来配置STM32的寄存器以实现各种功能,这种方式使得开发人员不用直接去操作寄存器,提高了开发速度,代码更具可读性,方便维护。这也是目前最多人使用的方式。
//示例:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //使能时钟//管脚的初始化GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;        //pin13GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;  //低速GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出GPIO_Init(GPIOC,&GPIO_InitStructure);while(1){GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET); //低电平 点亮mydelay(1000);GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_SET);  //高电平 熄灭mydelay(1000);}

1.3 HAL库

HAL库是ST公司目前主力推的开发方式,全称就是Hardware Abstraction Layer(抽象印象层)。它的出现比标准库要晚,但其实和标准库一样,都是为了节省程序的开发时间。HAL的集成度更高,同样的功能,标准库可能要用几句话,HAL库只需用一句话就够了。并且HAL库也很好的解决了程序移植的问题,不同型号的stm32芯片它的标准库是不一样的,例如在F3上开发的程序移植到F4上是不能通用的,而使用HAL库可以实现。而且使用ST公司研发的STMcubemx软件,可以通过图形化方式进行功能配置(更加方便),直接生成整个使用HAL库的工程文件,可以说是方便至极,但是方便的同时也造成了它执行效率的低下。

1.4 LL库

LL库,即STM32Cube Low-Layer,也叫Cube LL、Cube底层库。早在2014年,ST推出了STM32CubeMX这款工具,同步推出了对应的STM32Cube HAL库。但是,HAL存在一些问题:代码量大、执行效率低等缺点。因此,在2017年,ST推出了STM32Cube LL库,目的就是为了解决的HAL库的缺点,让开发STM32的工程师有更多的选择。

在这里插入图片描述

http://www.dtcms.com/a/511614.html

相关文章:

  • 使用 Go + govcl 实现 Windows 资源管理器快捷方式管理器
  • golang/java每日3题
  • 智能数字毫秒表的应用场景介绍,数字毫秒仪 智能毫秒表
  • 【设计模式】工厂模式(Factory)
  • 峰峰专业做网站珠海集团网站建设
  • vue实现打印PDF文档
  • 使用 Python 将 PDF 转成 Excel:高效数据提取的自动化之道
  • 神经网络初次学习收获
  • clickhouse学习笔记(一)基础概念与架构
  • 做网站的业务分析wordpress 国外免费主题
  • [人工智能-大模型-34]:模型层技术 - 通俗易懂的语言阐述Transformer架构
  • 推广你公司网站wordpress静态路由
  • 2017年下半年试题三:论无服务器架构及其应用
  • 内置线程池的核心参数分析配置
  • vim及其模式的操作
  • ESP32学习笔记(基于IDF):SmartConfig一键配网
  • 黑马商城day4-微服务02
  • 哪些网站可以找到做海报的素材浙江建设厅考试成绩查询
  • Python定时爬取新闻网站头条:从零到一的自动化实践
  • 纯CSS实现多种背景图案:渐变条纹、蓝图网格、波点与棋盘效果全解析(附 Sass Mixin 封装)
  • Linux相关概念和易错知识点(48)(epoll的底层原理、epoll的工作模式、反应堆模式)
  • 植物网站设计方案如何查网站是哪家公司做的
  • Vue 2 响应式系统常见问题与解决方案(包含_demo以下划线开头命名的变量导致响应式丢失问题)
  • [人工智能-大模型-33]:模型层技术 - 大模型的神经网络架构
  • MySQL 从库延迟 10 小时——磁盘静默错误引发的惨案
  • 【go语言】gopls工具与LSP协议全面解析
  • 网站页面设计怎么做东莞软件开发培训机构
  • 《算法每日一题(1)--- 第31场蓝桥算法挑战赛》
  • 低代码开发平台有哪些:数字化深水区的核心基建与品牌全景
  • 二元 LDPC码的Tanner图表示方法