STM32串口接收字符型数字字符串转换为整型数字

函数比较简单就直接粘贴出程序了~

void USART1_IRQHandler(void)
{

  if(USART_GetITStatus(USART1, USART_IT_RXNE)!= RESET)
  { 
    USART_ClearITPendingBit(USART1,USART_IT_RXNE);
    temp[i]=USART_ReceiveData(USART1);
        temp[i]=temp[i]-0x30;
      i++;
 }
    }

USART.C函数

include “usart.h”

void USART1_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ USART1,ENABLE);
//凡是中断必须有NVIC配置
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreem这里写代码片ptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA,&GPIO_InitStructure);

USART_InitStructure.USART_BaudRate = 115200;
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;
USART_Init(USART1,&USART_InitStructure);
  USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); //切记使能串口接受中断
USART_Cmd(USART1,ENABLE);       

}

int fputc(int ch, FILE *f)
{
USART_SendData(USART1, (uint8_t) ch);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
return (ch);
}
int fgetc(FILE *f)
{
while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);
return (int)USART_ReceiveData(USART1);
}

usart.h函数
#ifndef  __USART_H
#define  __USART_H

#include "stdio.h"
#include "stm32f10x.h"


void USART1_Config(void);

int fputc(int ch, FILE *f);
int fgetc(FILE *f);


#endif
新手一个,有错误请指教~

你可能感兴趣的:(STM32串口接收字符型数字字符串转换为整型数字)