您的位置 首页 国产IC

STM32F103V—固件库运用—USART1

/********************USART应用********************stm32库文件应用—USART1应用芯片型号:STM32F103V引脚:TXD1:PA9-US1-

/******************** USART使用********************

stm32库文件使用—USART1使用
芯片型号:STM32F103V
引脚: TXD1:PA9-US1-TX RXD1:PA10-US1-RX
编写日期:2012年3月24日
作者: ClimberWin

作用: 串口1输出数据,循环累加
波特率: 9600,n,8,1
*/

/* Includes ——————————————————————*/
#include “stm32f10x.h”
#include “misc.h”

#define uint unsigned int
#define uchar unsigned char

static volatile ErrorStatus HSEStartUpStatus = SUCCESS;

/* Private typedef ———————————————————–*/
typedef enum { FAILED = 0, PASSED = !FAILED} TestStatus;

/* Private define ————————————————————*/
#define TxBufferSize1 (countof(TxBuffer1) – 1)
#define RxBufferSize1 (countof(TxBuffer1) – 1)

/* Private macro ————————————————————-*/
#define countof(a) (sizeof(a) / sizeof(*(a)))

/* Private variables ———————————————————*/
USART_InitTypeDef USART_InitStructure;

uint8_t TxBuffer1[] = “USART1 Test OK”;
uint8_t RxBuffer1[RxBufferSize1],rec_f;
__IO uint8_t TxCounter1 = 0x00;
__IO uint8_t RxCounter1 = 0x00;
uint8_t NbrOfDataToTransfer1 = TxBufferSize1;
uint8_t NbrOfDataToRead1 = RxBufferSize1;

uchar data_temp;

/* Private function prototypes ———————————————–*/
void RCC_Configuration(void);
void GPIO_Configuration(void);
void NVIC_Configuration(void);
void delayms(unsigned int count);

GPIO_InitTypeDef GPIO_InitStructure;

/*************延时程序***************/
void delayms(unsigned int count)
{
unsigned int i,j;
for(i=0;ifor(j=0;j<10000;j++);
}

//////////////主程序/////////////////
int main(void)
{

/* System Clocks Configuration */
RCC_Configuration();
/* NVIC configuration */
NVIC_Configuration();
/* Configure the GPIO ports */
GPIO_Configuration();

/* USART1 configuration ——————————————————*/
/* USART and USART2 configured as follow:
– BaudRate = 9600 baud
– Word Length = 8 Bits
– One Stop Bit
– No parity
– Hardware flow control disabled (RTS and CTS signals)
– Receive and transmit enabled
*/
/////////////////////////////////////////////////////
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_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;

/* Configure USART1 */
USART_Init(USART1, &USART_InitStructure);

/* Enable USART1 Receive and Transmit interrupts */
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
USART_ITConfig(USART1, USART_IT_TXE, ENABLE);

/* Enable the USART1 */
USART_Cmd(USART1, ENABLE);
/////////////////////////////////////////////////////
while (1)
{
delayms(1000);
USART_SendData(USART1, data_temp);
data_temp++;

}

}

/////////////////子程序/////////////////////////
void RCC_Configuration(void)
{
/* Setup the microcontroller system. Initialize the Embedded Flash Interface,
initialize the PLL and update the SystemFrequency variable. */
SystemInit();

/* Enable USART1, GPIOA, GPIOx and AFIO clocks */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA
| RCC_APB2Periph_AFIO, ENABLE);

}

/**
* @brief Configures the different GPIO ports.
* @param None
* @retval : None
*/
void GPIO_Configuration(void)
{

RCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1 |RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
RCC_APB2Periph_GPIOE, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //USART1 TX
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_Init(GPIOA, &GPIO_InitStructure); //A端口

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //USART1 RX
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //复用开漏输入
GPIO_Init(GPIOA, &GPIO_InitStructure); //A端口

}

/**
* @brief Configures the nested vectored interrupt controller.
* @param None
* @retval : None
*/
void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
/* Configure the NVIC Preemption Priority Bits */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/267151.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部