STM32 GPIO和定时器 模拟串口


基于STM32F042,使用定时器 GPIO模拟串口,定时器自动发送数据,发送不会一直不占用CPU
资源截图
代码片段和文件信息
#include “stm32f0xx.h“
#include 
#include “stm32f0xx_rcc.h“
#include “stm32f0xx_gpio.h“

EXTI_InitTypeDef   EXTI_InitStructure;
GPIO_InitTypeDef   GPIO_InitStructure;
NVIC_InitTypeDef   NVIC_InitStructure;

void SysClkInit(void)
{
RCC_DeInit();//复位时钟

RCC_PLLConfig(RCC_PLLSource_HSI_Div2 RCC_PLLMul_12); //HSI 2分频(即8MHz/2=4MHz)作为PLL输入时钟,PLL 12倍频 主时钟频率48MHz

RCC_PLLCmd(ENABLE);//使能PLL

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)//等待PLL准备好
{
}

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//将PLLCLK设置为系统时钟源

while(RCC_GetSYSCLKSource() != 0x08)//判断系统时钟是否为PLLCLK
{
}
}

void LEDConfig(void)
{
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOF ENABLE);//使能GPIOF所在的AHB时钟


/* 填充IO配置结构体 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;//PIN0,PIN1
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//输出模式
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO口频率带宽50MHz
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//没有上拉下拉电阻

GPIO_Init(GPIOF &GPIO_InitStructure);
}

void BtnConfig(void)
{
/* Enable GPIOA clock */
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA ENABLE);

  /* Configure PA0 pin as input floating */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_Init(GPIOA &GPIO_InitStructure);

  /* Enable SYSCFG clock */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG ENABLE);
  /* Connect EXTI0 Line to PA0 pin */
  SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA EXTI_PinSource0);//for exit clk

  /* Configure EXTI0 line */
  EXTI_InitStructure.EXTI_Line = EXTI_Line0;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);

  /* Enable and set EXTI0 Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = EXTI0_1_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPriority = 0x00;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2227  2018-04-04 15:24  STM32F0xx_StdPeriph_SenDiDrivermisc_drv.c

     文件         99  2018-04-04 15:24  STM32F0xx_StdPeriph_SenDiDrivermisc_drv.h

     文件       3371  2018-04-04 13:15  STM32F0xx_StdPeriph_SenDiDriverstm32f0xx_conf.h

     文件       6824  2018-04-08 10:19  STM32F0xx_StdPeriph_SenDiDriverstm32f0xx_it.c

     文件       2209  2014-12-02 18:36  STM32F0xx_StdPeriph_SenDiDriverstm32f0xx_it.h

     文件      13141  2018-04-04 14:33  STM32F0xx_StdPeriph_SenDiDriversystem_stm32f0xx.c

     文件       2053  2018-04-08 10:20  STM32F0xx_StdPeriph_SenDiDriver mr_drv.c

     文件        290  2018-04-08 10:18  STM32F0xx_StdPeriph_SenDiDriver mr_drv.h

     文件       4368  2018-04-08 10:43  STM32F0xx_StdPeriph_SenDiDriveruart_drv.c

     文件        625  2018-04-08 09:05  STM32F0xx_StdPeriph_SenDiDriveruart_drv.h

     文件          0  2018-04-09 14:01  STM32F0xx_StdPeriph_SenDigpio sim uart ok.txt

     文件        339  2018-04-08 10:20  STM32F0xx_StdPeriph_SenDiMDK-ARMEventRecorderStub.scvd

     文件         19  2018-04-08 10:30  STM32F0xx_StdPeriph_SenDiMDK-ARMExtDll.iex

     文件      68760  2018-04-08 11:02  STM32F0xx_StdPeriph_SenDiMDK-ARMJlinkLog.txt

     文件        755  2018-04-04 14:07  STM32F0xx_StdPeriph_SenDiMDK-ARMJlinkSettings.ini

     文件     319547  2018-04-08 11:02  STM32F0xx_StdPeriph_SenDiMDK-ARMmain.crf

     文件       2377  2018-04-08 11:02  STM32F0xx_StdPeriph_SenDiMDK-ARMmain.d

     文件     372980  2018-04-08 11:02  STM32F0xx_StdPeriph_SenDiMDK-ARMmain.o

     文件     314810  2018-04-08 10:59  STM32F0xx_StdPeriph_SenDiMDK-ARMmisc.crf

     文件       2227  2018-04-08 10:59  STM32F0xx_StdPeriph_SenDiMDK-ARMmisc.d

     文件     369752  2018-04-08 10:59  STM32F0xx_StdPeriph_SenDiMDK-ARMmisc.o

     文件     318680  2018-04-08 10:09  STM32F0xx_StdPeriph_SenDiMDK-ARMmisc_drv.crf

     文件       2420  2018-04-08 10:09  STM32F0xx_StdPeriph_SenDiMDK-ARMmisc_drv.d

     文件     371540  2018-04-08 10:09  STM32F0xx_StdPeriph_SenDiMDK-ARMmisc_drv.o

    .......    174325  2018-04-09 13:40  STM32F0xx_StdPeriph_SenDiMDK-ARMProject.uvguix.WSZ

    .......     85548  2018-04-08 10:41  STM32F0xx_StdPeriph_SenDiMDK-ARMProject.uvoptx

    .......    212818  2018-04-08 10:41  STM32F0xx_StdPeriph_SenDiMDK-ARMProject.uvprojx

     文件      93222  2018-04-08 11:04  STM32F0xx_StdPeriph_SenDiMDK-ARMProject_STM32F042.dep

     文件       3646  2014-12-06 04:34  STM32F0xx_StdPeriph_SenDiMDK-ARM
eadme.txt

     文件        107  2018-04-08 10:09  STM32F0xx_StdPeriph_SenDiMDK-ARMstartup_stm32f042.d

............此处省略202个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)