看 STM32F042的资料比较少,个人学习用此芯片,此帖记录学习的过程顺便会上传代码

看 STM32F042的资料比较少,个人学习用此芯片,此帖记录学习的过程顺便会上传代码

##include <stm32f0xx.h>
#include <TIMx_Init.h>
#include <led.h>

void TIM3_IRQHandler(void);

int main(void)
{
//UART_Init(115200);
LED_init();
TIM3_init(2999,7199);

while(1);

}
main函数比较简单异动,主要用中断去实现LED的闪烁功能

//
#include <stm32f0xx.h>
#include <TIMx_Init.h>
#include <led.h>


void TIM3_IRQHandler(void);

int main(void)
{	
	//UART_Init(115200);
	LED_init();
	TIM3_init(2999,7199);
	
	while(1);
} 
```c
//
#include "TIMx_Init.h"
#include "stm32f0xx.h"


void TIM3_init(uint16_t arr,uint16_t psc)
{
	
	
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
	NVIC_InitTypeDef NVIC_InitStructure;
	
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);            
	
	TIM_TimeBaseInitStructure	.TIM_Period=arr;
	TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;
	TIM_TimeBaseInitStructure.TIM_Prescaler=psc;
	TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;			 
	TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);             
	
	TIM_ClearFlag(TIM3,TIM_FLAG_Update);                           
	
	TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);                       
 
	NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
	NVIC_InitStructure.NVIC_IRQChannelPriority=0;
	NVIC_Init(&NVIC_InitStructure);                                
	
	TIM_Cmd(TIM3,ENABLE);

}
void TIM3_IRQHandler(void)
{
	static int flag=1;
	if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET)
	{

		TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
		if(flag==1)
		{
			GPIOB->BRR = GPIO_Pin_1;
			flag=0;
		}
		else
		{
			GPIOB->BSRR = GPIO_Pin_1;
			flag=1;
		}	
	}
}

中断函数中带有使得LED闪烁的代码

#include "led.h"
#include "stm32f0xx.h"

void LED_init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;      						 
		
		RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB ,ENABLE);    //ʹÄÜIOʱÖÓ

		GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
		GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
		GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_2;
		GPIO_Init(GPIOB,&GPIO_InitStructure);										//¿ªÆôʱÖÓÒԺ󣬳õʼ»¯GPIOO
		
		GPIO_ResetBits(GPIOB,GPIO_Pin_1);
																															
}

这是LED初始化函数




  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F042是一款由STMicroelectronics公司推出的低功耗32位微控制器,具有强大的性能和丰富的外设功能。它是基于ARM Cortex-M0内核设计的,适用于广泛的应用领域,如工业自动化、消费电子、医疗设备等。 在使用STM32F042微控制器时,我们可以利用STMicroelectronics提供的例程来快速上手。例程是提供给开发者的一些示例代码和工程,旨在帮助开发者理解和使用微控制器的各种功能。通过参考例程,我们可以学习和了解如何使用STM32F042的各个外设和特性。 例程通常在官方网站上提供,我们可以根据自己的需求下载并使用。通过研究例程代码,我们可以学习如何配置和使用微控制器的外设,如GPIO、USART、SPI、I2C等,以及如何编写中断服务程序和处理器指令等。 在使用例程之前,我们需要确保已经搭建好了开发环境,包括安装Keil、IAR或者其他适用的开发工具,并且配置好了对应的编译器和调试器。 在开始使用例程之前,我们可以先了解例程的文件组成结构,通常包括源代码、头文件、链接脚本和编译选项等。我们可以使用开发工具打开例程的工程文件,然后编译、烧写和调试代码。 除了基本的外设功能,例程还可以提供一些高级应用场景的示例,如使用PWM控制电机速度、使用定时器实现延时等。这些例程可以帮助开发者更快速地了解和使用STM32F042的高级功能。 总而言之,通过使用STM32F042的例程,我们可以快速入门和掌握微控制器的开发,特别是熟悉外设的配置和使用。同时,我们也可以通过对例程的研究和理解,更深入地学习和应用STM32F042的各种功能和特性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值