first commit
This commit is contained in:
131
Gambal/APP/usart1.c
Normal file
131
Gambal/APP/usart1.c
Normal file
@ -0,0 +1,131 @@
|
||||
#include "usart1.h"
|
||||
//#include "math.h"
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
u8 USART_RX_BUF[20];
|
||||
//<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
unsigned short USART_RX_STA=0; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>־
|
||||
|
||||
//void USART1_IRQHandler(void) //<2F><><EFBFBD><EFBFBD>1<EFBFBD>жϳ<D0B6><CFB3><EFBFBD>
|
||||
//{
|
||||
// unsigned char Res;
|
||||
//
|
||||
// if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //
|
||||
// {
|
||||
// Res =USART_ReceiveData(USART1); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ֽ<EFBFBD>
|
||||
//
|
||||
// if((USART_RX_STA&0x8000)==0) //<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>
|
||||
// {
|
||||
// if(USART_RX_STA&0x4000) //<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>0x0d
|
||||
// {
|
||||
// if(Res!=0x0a)USART_RX_STA=0; //<2F><><EFBFBD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD>ʼ
|
||||
// else
|
||||
// {
|
||||
// USART_RX_STA|=0x8000; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// USART_RX_BUF[USART_RX_STA&0X3FFF]='\0'; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽڷ<D6BD>'0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
// }
|
||||
// }
|
||||
// else //<2F><>û<EFBFBD>յ<EFBFBD>0x0D
|
||||
// {
|
||||
// if(Res==0x0d)USART_RX_STA|=0x4000;
|
||||
// else
|
||||
// {
|
||||
// USART_RX_BUF[USART_RX_STA&0X3FFF]=Res;
|
||||
// USART_RX_STA++;
|
||||
// if(USART_RX_STA>(64-1))USART_RX_STA=0; //<2F><><EFBFBD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD>ʼ
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
u32 RX_CNT = 0;
|
||||
u8 f;
|
||||
u8 x[10];
|
||||
u8 y[10];
|
||||
void USART1_IRQHandler(void)
|
||||
{
|
||||
unsigned char res;
|
||||
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //
|
||||
{
|
||||
res = USART_ReceiveData(USART1); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ֽ<EFBFBD>
|
||||
|
||||
if(res != 0x0d)
|
||||
{
|
||||
USART_RX_BUF[RX_CNT] = res;
|
||||
if(res == 'y') f = RX_CNT;
|
||||
USART_RX_STA = 1;
|
||||
RX_CNT++;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
memcpy(x,USART_RX_BUF,f+1);
|
||||
memcpy(y,USART_RX_BUF+f+1,20-f-1);
|
||||
memset(USART_RX_BUF,0,20);
|
||||
RX_CNT = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int fputc(int ch,FILE *p) //<2F><><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵģ<CFB5><C4A3><EFBFBD>ʹ<EFBFBD><CAB9>printf<74><66><EFBFBD><EFBFBD>ʱ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
USART_SendData(USART1,(u8)ch);
|
||||
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
|
||||
return ch;
|
||||
}
|
||||
|
||||
//<2F><>ʼ<EFBFBD><CABC>IO <20><><EFBFBD><EFBFBD>1
|
||||
//pclk1:PCLK1ʱ<31><CAB1>Ƶ<EFBFBD><C6B5>(Mhz)
|
||||
//bound:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void usart1_Init(u32 bound)
|
||||
{
|
||||
//GPIO<49>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
USART_InitTypeDef USART_InitStructure;
|
||||
NVIC_InitTypeDef NVIC_InitStructure;
|
||||
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
|
||||
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
||||
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_8;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_Init(GPIOA, &GPIO_InitStructure);
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//TX //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PA9
|
||||
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
|
||||
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
GPIO_Init(GPIOA,&GPIO_InitStructure); /* <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO */
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//RX //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PA10
|
||||
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
GPIO_Init(GPIOA,&GPIO_InitStructure); /* <20><>ʼ<EFBFBD><CABC>GPIO */
|
||||
|
||||
|
||||
//USART1 <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
USART_InitStructure.USART_BaudRate = bound;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//<2F>ֳ<EFBFBD>Ϊ8λ<38><CEBB><EFBFBD>ݸ<EFBFBD>ʽ
|
||||
USART_InitStructure.USART_StopBits = USART_StopBits_1;//һ<><D2BB>ֹͣλ
|
||||
USART_InitStructure.USART_Parity = USART_Parity_No;//<2F><><EFBFBD><EFBFBD>żУ<C5BC><D0A3>λ
|
||||
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//<2F><>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //<2F>շ<EFBFBD>ģʽ
|
||||
USART_Init(USART1, &USART_InitStructure); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
|
||||
|
||||
USART_Cmd(USART1, ENABLE); //ʹ<>ܴ<EFBFBD><DCB4><EFBFBD>1
|
||||
|
||||
USART_ClearFlag(USART1, USART_FLAG_TC);
|
||||
|
||||
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
|
||||
//Usart1 NVIC <20><><EFBFBD><EFBFBD>
|
||||
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//<2F><><EFBFBD><EFBFBD>1<EFBFBD>ж<EFBFBD>ͨ<EFBFBD><CDA8>
|
||||
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;//<2F><>ռ<EFBFBD><D5BC><EFBFBD>ȼ<EFBFBD>2
|
||||
NVIC_InitStructure.NVIC_IRQChannelSubPriority =2; //<2F><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>1
|
||||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQͨ<51><CDA8>ʹ<EFBFBD><CAB9>
|
||||
NVIC_Init(&NVIC_InitStructure); //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>VIC<49>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
|
||||
RX_485;
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user