From ca9c8dd9e54375a5e1a7dac82399ba49d063ca4b Mon Sep 17 00:00:00 2001 From: liumin Date: Sun, 6 Jul 2025 16:13:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=20UART.C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- UART.C | 350 --------------------------------------------------------- 1 file changed, 350 deletions(-) delete mode 100644 UART.C diff --git a/UART.C b/UART.C deleted file mode 100644 index 9d28748..0000000 --- a/UART.C +++ /dev/null @@ -1,350 +0,0 @@ -//**************************************************************************** -// @Module UART (Serial Interface) -// @Filename UART.C -// @Project CL2.0.dav -//---------------------------------------------------------------------------- -// @Controller Infineon XC886CLM-8FF -// -// @Compiler Keil -// -// @Codegenerator 1.3 -// -// @Description: This file contains functions that use the UART module. -// -//---------------------------------------------------------------------------- -// @Date 2024/12/12 19:56:03 -// -//**************************************************************************** - -// USER CODE BEGIN (UART_General,1) - -// USER CODE END - - - -//**************************************************************************** -// @Project Includes -//**************************************************************************** - -#include "MAIN.H" - -// USER CODE BEGIN (UART_General,2) - -// USER CODE END - - -//**************************************************************************** -// @Macros -//**************************************************************************** - -// USER CODE BEGIN (UART_General,3) - -// USER CODE END - - -//**************************************************************************** -// @Defines -//**************************************************************************** - -// USER CODE BEGIN (UART_General,4) - -// USER CODE END - - -//**************************************************************************** -// @Typedefs -//**************************************************************************** - -// USER CODE BEGIN (UART_General,5) - -// USER CODE END - - -//**************************************************************************** -// @Imported Global Variables -//**************************************************************************** - -// USER CODE BEGIN (UART_General,6) - -// USER CODE END - - -//**************************************************************************** -// @Global Variables -//**************************************************************************** - -// USER CODE BEGIN (UART_General,7) - -// USER CODE END - - -//**************************************************************************** -// @External Prototypes -//**************************************************************************** - -// USER CODE BEGIN (UART_General,8) - -// USER CODE END - - -//**************************************************************************** -// @Prototypes Of Local Functions -//**************************************************************************** - -// USER CODE BEGIN (UART_General,9) - -// USER CODE END - - -//**************************************************************************** -// @Function void UART_vInit(void) -// -//---------------------------------------------------------------------------- -// @Description This is the initialization function of the UART function -// library. It is assumed that the SFRs used by this library -// are in their reset state. -// -// The following SFR fields will be initialized: -// - register SCON -// - bits SMOD and ES -// -//---------------------------------------------------------------------------- -// @Returnvalue None -// -//---------------------------------------------------------------------------- -// @Parameters None -// -//---------------------------------------------------------------------------- -// @Date 2024/12/12 -// -//**************************************************************************** - -// USER CODE BEGIN (UART_Init,1) - -// USER CODE END - -void UART_vInit(void) -{ - // USER CODE BEGIN (UART_Init,2) - - // USER CODE END - - /// ----------------------------------------------------------------------- - /// UART settings - /// ----------------------------------------------------------------------- - /// Pin TXD_1 (P0.2) is selected for transmission - /// Pin RXD_1 (P0.1) is selected for reception - /// Receiver enabled - /// Mode 1: 8-bit data, 1 start bit, 1 stop bit, variable baud rate - /// BRG is selected for baudrate generation - - SFR_PAGE(_pp2, noSST); // switch to page 2 without saving - P0_ALTSEL0 &= ~(ubyte)0x04; // configure alternate function register 0 - P0_ALTSEL1 |= (ubyte)0x04; // configure alternate function register 1 - SFR_PAGE(_pp0, noSST); // switch to page 0 without saving - P0_DIR |= (ubyte)0x04; // set output direction - - - MODPISEL |= (ubyte)0x01; // configure peripheral input select register - BCON = 0x00; // reset baudrate timer/reload register - SCON = 0x50; // load serial channel control register - - /// ----------------------------------------------------------------------- - /// Baudrate generator settings - /// ----------------------------------------------------------------------- - /// input clock = fPCLK - /// Fractional divider is disabled - /// baudrate = 100.0000 kbaud - - BG = 0x0E; // load baudrate timer/reload register - BCON |= 0x01; // load baud rate control register - - - // USER CODE BEGIN (UART_Init,3) - - // USER CODE END - - /// UART interrupt enabled - ES = 1; - -} // End of function UART_vInit - - -//**************************************************************************** -// @Function void UART_viIsr(void) -// -//---------------------------------------------------------------------------- -// @Description This is the service routine for the UART interrupt. It is -// called after each transmission (flag TI set) or reception -// (flag RI set) of a data unit. -// Please note that you have to add application specific code -// to this function. -// -//---------------------------------------------------------------------------- -// @Returnvalue None -// -//---------------------------------------------------------------------------- -// @Parameters None -// -//---------------------------------------------------------------------------- -// @Date 2024/12/12 -// -//**************************************************************************** - -// You have two choices for interrupt type select in Project Settings Page -// under Global Settings Section. -// If you select CHOICE 1 then ISR will be generated with push and pop. -// If you select CHOICE 2 then ISR will be generated without push and pop. -// Default choice is CHOICE 2. -// Current selection is CHOICE 2 - -// USER CODE BEGIN (UART_Isr,1) -uint16_t char_data[25] = {0}; -// USER CODE END - -void UART_viIsr(void) interrupt UARTINT -{ - - // USER CODE BEGIN (UART_Isr,2) -// static uint8_t i = 0; - static uint8_t cnt_sbus = 0; - static uint8_t state = 0; - static uint8_t receive = 0; - static uint8_t sbus_buff[25]; - SBusData *tmp_sbus_data; - // USER CODE END - SFR_PAGE(_su0, SST0); // switch to page 0 - if (TI) - { - // USER CODE BEGIN (UART_Isr,3) - - TI = 0; - - // USER CODE END - } - if (RI) - { - // USER CODE BEGIN (UART_Isr,4) - RI = 0; - - char_data[0] = (ubyte)SBUF; -// UART_vSendData8(char_data[0]); - - switch(state) - { - case 0: - if(0x0f == char_data[0]) - { - receive = 0; - cnt_sbus = 0; - sbus_buff[cnt_sbus] = char_data[0]; - cnt_sbus++; - state = 1; - } - else - { - state = 0; - } - break; - case 1: - if(cnt_sbus >= 24) - { - if(0x0 == char_data[0]) - { - cnt_sbus = 0; - receive = 0; - sbus_buff[cnt_sbus] = char_data[0]; - state = 0; - tmp_sbus_data = parseSBusData(sbus_buff); - } - } - else if( (0x0f == char_data[0]) && (10 != cnt_sbus) )//当为第10个字节为0x0F是正常的,所以不用清0 - { - receive = 0; - cnt_sbus = 0; - sbus_buff[cnt_sbus] = char_data[0]; - cnt_sbus++; - state = 1; - } - else - { - sbus_buff[cnt_sbus] = char_data[0]; - cnt_sbus ++; - state = 1; - } - break; - default:break; - } - - // USER CODE END - } - - // USER CODE BEGIN (UART_Isr,5) - - // USER CODE END - SFR_PAGE(_su0, RST0); // restore the old page -} // End of function UART_viIsr - - -//**************************************************************************** -// @Function ubyte UART_ubGetData8(void) -// -//---------------------------------------------------------------------------- -// @Description This function returns the last received 8-bit data unit. -// Interrupt flag RI will be cleared. -// -//---------------------------------------------------------------------------- -// @Returnvalue received data unit -// -//---------------------------------------------------------------------------- -// @Parameters None -// -//---------------------------------------------------------------------------- -// @Date 2024/12/12 -// -//**************************************************************************** - -//ubyte UART_ubGetData8(void) -//{ -// // Clear the receiver interrupt flag -// RI = 0; - -// // Return the received data byte -// return(SBUF); - -//} // End of function UART_ubGetData8 - - -//**************************************************************************** -// @Function void UART_vSendData8(ubyte ubData) -// -//---------------------------------------------------------------------------- -// @Description This function transmits an 8-bit data unit. At first -// interrupt flag TI is cleared, then buffer SBUF is written. -// -//---------------------------------------------------------------------------- -// @Returnvalue None -// -//---------------------------------------------------------------------------- -// @Parameters ubData: -// data to be transmitted -// -//---------------------------------------------------------------------------- -// @Date 2024/12/12 -// -//**************************************************************************** - -//void UART_vSendData8(ubyte ubData) -//{ -// // Clear the transmitter interrupt flag -// TI = 0; - -// // Write the transmit data byte, this initiates the transmission. -// SBUF = ubData; -//} // End of function UART_vSendData8 - - -// USER CODE BEGIN (UART_General,10) - -// USER CODE END -