当前位置:首页 > 单片机 > 单片机
[导读]main.c配置:/**说明:*PA0:KEY1;PA1:KEY2;*PA2:LED1;PA3:LED2;*PA9:USART1_TX;PA10:USART1_RX*/#include"stm32f10x.h"#include"stm32f10x_rcc.h"#include"stm32f10x_gpio.h"#include"stm32f10x_usart.h"#include"st

main.c配置:


/*

*说明:

*PA0:KEY1;PA1:KEY2;

*PA2:LED1;PA3:LED2;

*PA9:USART1_TX;PA10:USART1_RX

*/

#include"stm32f10x.h"

#include"stm32f10x_rcc.h"

#include"stm32f10x_gpio.h"

#include"stm32f10x_usart.h"

#include"stm32f10x_exti.h"

#include"system_stm32f10x.h"

#include"misc.h"

voidRCC_Configuration(void);

voidGPIO_Configuration(void);

voidUSART_Configuration(void);

voidNVIC_Configuration(void);

intmain()

{

SystemInit();//72m

RCC_Configuration();

GPIO_Configuration();

USART_Configuration();

NVIC_Configuration();

while(1);

}

voidRCC_Configuration(void)

{

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);

}

voidGPIO_Configuration(void)

{

GPIO_InitTypeDefGPIO_InitStructure;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//管脚9

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽输出

GPIO_Init(GPIOA,&GPIO_InitStructure);//TX初始化

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//管脚10

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//浮空输入

GPIO_Init(GPIOA,&GPIO_InitStructure);//RX初始化

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_Init(GPIOA,&GPIO_InitStructure);

}

voidUSART_Configuration(void)//串口初始化函数

{

//串口参数初始化

USART_InitTypeDefUSART_InitStructure;//串口设置恢复默认参数

//初始化参数设置

USART_InitStructure.USART_BaudRate=9600;//波特率9600

USART_InitStructure.USART_WordLength=USART_WordLength_8b;//字长8位

USART_InitStructure.USART_StopBits=USART_StopBits_1;//1位停止字节

USART_InitStructure.USART_Parity=USART_Parity_No;//无奇偶校验

USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//无流控制

USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;//打开Rx接收和Tx发送功能

USART_Init(USART1,&USART_InitStructure);//初始化

USART_ITConfig(USART1,USART_IT_TXE,ENABLE);//允许串口1发送中断。

USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//允许串口1接收中断。

USART_Cmd(USART1,ENABLE);//启动串口

USART_ClearFlag(USART1,USART_FLAG_TC);//发送完成标志位

}

voidNVIC_Configuration(void)//配置中断优先级

{

NVIC_InitTypeDefNVIC_InitStructure;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;

NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;

NVIC_Init(&NVIC_InitStructure);

}


stm32f10x_it.c的中断函数接收发送数据(接收和发送的时候改变LED状态):


#include"..includestm32f10x.h"

#include"..includestm32f10x_it.h"

#include"..includestm32f10x_gpio.h"

#include"..includestm32f10x_usart.h"

voidUSART1_IRQHandler(void)

{

u8RX_dat;

if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET)//USART_IT_RXNE:接收中断

{

USART_ClearITPendingBit(USART1,USART_IT_RXNE);

RX_dat=USART_ReceiveData(USART1);

while(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)==RESET){}//接收数据寄存器非空标志位

GPIO_WriteBit(GPIOA,GPIO_Pin_2,(BitAction)(Bit_SET-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_2)));

USART_SendData(USART1,RX_dat);

while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET){}//发送数据寄存器空标志位

GPIO_WriteBit(GPIOA,GPIO_Pin_3,(BitAction)(Bit_SET-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_3)));

}

}



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

STM32与51单片机之间有什么差异呢?两者可以说是一场科技与性能的较量了。在科技飞速发展的今天,微控制器(MCU)已广泛应用于各类电子设备和系统中,发挥着举足轻重的作用。其中,STM32和51单片机作为两种常见的微控制...

关键字: STM32 51单片机 MCU

电磁铁是一种利用电流产生磁场的装置,具有快速响应、易于控制等特点,在工业自动化、电子设备、科学实验等领域有着广泛的应用。STM32是一款功能强大的微控制器,具有高性能、低功耗、易于编程等优点,是控制电磁铁的理想选择。本文...

关键字: 电磁铁 微控制器 STM32

边缘人工智能的实现涉及到三个基本 要素:安全性,连接性、自主性,而其中自主性是AI能力的体现,也是边缘AI有别于其他传统的物联网的关键。而通过ST Edge AI套件,就可以帮助各种不同类型的开发者实现覆盖全硬件平台的全...

关键字: 边缘人工智能 AI STM32

今天,小编将在这篇文章中为大家带来STM32单片机最小系统的有关报道,通过阅读这篇文章,大家可以对它具备清晰的认识,主要内容如下。

关键字: 单片机 单片机最小系统 STM32

上位机串口通信是指在上位机(通常是计算机或微控制器)与外部设备之间通过串行通信协议进行数据传输和通信的过程。在串口通信中,数据以位为单位按顺序传送,通常使用一个或两个物理线路(通常是两条线)来实现数据的发送和接收。

关键字: 上位机 串口通信

串口通信(Serial Communication)是一种常用的数据传输方式,它通过串行数据线逐位传输数据,具有成本低、简单易用、可靠性高等优点。在工业控制、通信设备、嵌入式系统等领域得到广泛应用。

关键字: 串口通信 嵌入式系统

串口通信是一种常见的通信方式,用于在不同设备之间传输数据。它通过串行数据线(通常是一对TXD和RXD线)在设备之间进行通信。串口通信具有简单、可靠、成本低等优点,因此在工业控制、嵌入式系统、数据采集等领域得到广泛应用。

关键字: 串口通信 串口编程

串口通信是一种常见的通信方式,主要应用于计算机和其他设备之间的数据传输。它的主要原理是利用串行数据传输的方式,将数据一位一位地按顺序传输,而不是同时传输所有的数据。下面我们来看看串口通信的主要原理以及如何提高其传输速度。

关键字: 串口通信 串口速度
关闭
关闭