stm32c8t6外设配置(基于标准库编程)

链接:https://pan.baidu.com/s/1sETAAAAhbylHvRaCnWjKlA 
提取码:jcv3
链接:https://pan.baidu.com/s/1mF1fyTkaqQp0FoGbEYrL3Q 
提取码:pgar

芯片的规格介绍

RAM(Read Access Memory):随机存储器,通俗的理解就是内存。(SRAM)

ROM(Read Only Memory):  可读存储器,可以看作是存储器,并且有着掉电不丢失的特性。在stm32中通常称为FLASH(闪存)。

封装方式:LQFP48(低抛面四方扁平封装)。常见的封装方式(DIP)双列直插式封装和小外形集成电路封装(SOIC)。

系统结构

片上外设的介绍和基本使用

GPIO通用输入输出口

 具体了解可参考 http://t.csdnimg.cn/KXqoZ

引脚电平:0V~3.3V,部分引脚可容忍5V
输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等 输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等

可配置为8种输入输出模式

上拉输入:上拉输入默认值为高电平,高电平弱驱动。
下拉输入:默认为低电平,低电平强驱动。
浮空输入:输入信号由外部电路决定,适用于需要检测外部信号变化。
模拟输入:输入的信号是连续的且是模拟信号。
推挽输出:输出强上拉和强下拉电平。
开漏输出:输出强下拉,当输出高电平时,二极管断开,并不是输出的电平,而是由外部上拉电阻拉至高电平,这种一般是弱上拉。
复用模式:就是将引脚的控制权交于片上外设控制
推挽复用      开漏复用
    //开启时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	//配置引脚模式	
	GPIO_InitTypeDef GPIO_InitStructure;	
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;//配置为输入模式
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;//配置具体引脚,这里配置的是二号引脚
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//引脚输入速率
	GPIO_Init(GPIOA,&GPIO_InitStructure);

AFIO复用端口

为了节省引脚资源,同一个引脚可能有不同的功能可以选用(引脚重映射),AFIO可以帮助管理引脚功能的选择,灵活性高的同时还可以提高性能。

    //开启时钟
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
	//功能复用
	GPIO_PinRemapConfig(GPIO_PartialRemap_TIM1,ENABLE);

EXTI外部中断

嵌套向量中断控制器(NVIC)这个是内核外设,不用开启时钟。

中断和异常向量表:这个里面包含了stm32的所有中断事件。(建议参考手册的9.1.2)

32的中断介绍

68个可屏蔽中断通道,包含EXTI、TIM、ADC、USART、SPI、I2C、RTC等多个外设 
使用NVIC统一管理中断,每个中断通道都拥有16个可编程的优先等级,可对优先级进行分组,进一步设置抢占优先级和响应优先级 
优先级分为五组,分别是0~5,其中优先级又分为抢占式优先级和响应优先级

分组0,代表响应优先级占四位,4位,取值为0~15;分组1,抢占优先级1位,取值为0~1,响应优先级3位,取值为0~7以此类推······

//设置中断优先级的代码
void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);

 配置外部中断的基本操作

//开启时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
	//引脚配置
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 ;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	//GPIO要开启外部中断使能
	GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource1);
	//优先级设置
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
	
	//NVIC设置
	NVIC_InitTypeDef NVIC_InitStructure;
	NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn ;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//优先级
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
	NVIC_Init(&NVIC_InitStructure);
	
	//中断配置
	EXTI_InitTypeDef structure;
	structure.EXTI_Line=EXTI_Line1;
	structure.EXTI_LineCmd=ENABLE;
	structure.EXTI_Mode=EXTI_Mode_Interrupt;//外部中断,或者事情中断
	structure.EXTI_Trigger=EXTI_Trigger_Rising;//上升沿还是下降沿触发
	EXTI_Init(&structure);

对于互联型产品,外部中断 / 事件控制器由 20 个产生事件 / 中断请求的边沿检测器组成,对于其它
产品,则有 19 个能产生事件 / 中断请求的边沿检测器。每个输入线可以独立地配置输入类型 ( 脉冲
或挂起 ) 和对应的触发事件 ( 上升沿或下降沿或者双边沿都触发 ) 。每个输入线都可以独立地被屏
蔽。挂起寄存器保持着状态线的中断请求。

 具体内容不多讲,建议参考一下手册的9.2

TIM定时器 

TIM的介绍
stm32c8t6一共有四个定时器,TIM1~4,一个高级定时器,三个通用定时器
通用定时器是一个16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时 不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能 根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型
每个定时器都是完全独立的,没有互相共享任何资源。它们可以一起同步操作,参见14.3.15
节。
TIM常用的功能(具体可参考手册14.2节)

可参考http://t.csdnimg.cn/v6cVE

           http://t.csdnimg.cn/QKiAD

           http://t.csdnimg.cn/ENBCn

           http://t.csdnimg.cn/RYGY3

           http://t.csdnimg.cn/ENBCn

  • 25
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: STM32C8T6最小系统封装库是一种基于STM32C8T6微控制器的最小系统开发库。该库提供了一系列的函数和驱动程序,方便开发者使用STM32C8T6进行系统开发和测试。 STM32C8T6是一款由STMicroelectronics公司生产的32位ARM Cortex-M3内核的微控制器。它具有丰富的外设资源和强大的性能,能够满足各种应用的需求。 最小系统封装库是为了方便开发者使用STM32C8T6而设计的。该库封装了底层的寄存器和硬件控制逻辑,通过提供简单易用的接口函数,使开发者可以方便地读写寄存器、配置外设、控制时钟和中断等。 使用最小系统封装库可以简化STM32C8T6的开发流程,提高开发效率。开发者只需调用相应的函数,即可完成各种操作,无需关心底层的具体实现细节。同时,该库还提供了丰富的示例代码和文档,帮助开发者快速上手。 总之,STM32C8T6最小系统封装库为开发者提供了一种便捷的方式来使用STM32C8T6进行系统开发。通过使用该库,开发者可以快速构建出稳定、高效的应用系统。 ### 回答2: STM32C8T6最小系统是一种包含STM32C8T6微控制器的封装库,旨在提供简化的硬件和软件接口,以便于开发人员进行嵌入式系统设计。最小系统封装库通常包含微控制器、晶体振荡器、电源管理电路以及其他必要的外围器件。 使用最小系统封装库,开发人员可以从头开始设计他们的嵌入式系统,无需关注微控制器的硬件细节。该封装库通常提供了标准的引脚布局和电路连接,开发者只需要将自己的外设与封装库中的引脚相连接即可。 此外,最小系统封装库还包含了简化的软件接口,以便于开发人员使用微控制器的功能。开发者可以使用封装库中提供的函数来控制和配置微控制器的外设,例如GPIO、USART、SPI等。封装库还提供了常用的驱动程序和示例代码,帮助开发者快速上手。 STM32C8T6是一款功能强大的STM32系列微控制器,拥有丰富的外设和高性能的处理能力。最小系统封装库能够充分发挥STM32C8T6的优势,简化硬件设计和软件开发过程。无论是初学者还是经验丰富的开发人员,都可以通过使用最小系统封装库来快速构建和开发高性能的嵌入式系统。 综上所述,STM32C8T6最小系统封装库是一种方便开发人员进行嵌入式系统设计的封装库,提供了简化的硬件和软件接口,以及丰富的外设和高性能的处理能力。 ### 回答3: STM32C8T6最小系统封装库(STM32C8T6 minimum system package)指的是一种专门为STM32C8T6微控制器设计的硬件模块,它包含了微控制器所需的最基本的电路和接口。 这个最小系统封装库通常包括以下几个主要组成部分: 1. STM32C8T6微控制器芯片:它是封装库的核心部分,包含了STM32C8T6微控制器的主要功能单元,如处理器核心、存储器、外设等。 2. 外部晶体振荡器:该封装库通常会集成一个外部晶体振荡器,用于提供系统时钟。STM32C8T6微控制器需要时钟信号来同步操作,外部晶体振荡器可以提供稳定的时钟信号。 3. 电源电路:该封装库通常会包含一个电源电路,用于为STM32C8T6提供所需的电源电压。电源电路一般包括稳压器、电容和电感等元件,以确保STM32C8T6工作的稳定性和可靠性。 4. 编程接口:为了方便用户编程和调试,最小系统封装库通常会提供一些编程接口,如串口和JTAG接口。通过这些接口,用户可以使用相应的开发工具与STM32C8T6进行通信,进行程序的下载、调试和测试等操作。 总之,STM32C8T6最小系统封装库是为了简化STM32C8T6微控制器的硬件设计和开发而设计的,它集成了基本的电路和接口,使得用户只需要关注软件部分的开发,从而加快产品的开发速度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值