Files
MicrochipFor32/bsp_Device/bsp_Console.c

75 lines
3.1 KiB
C
Raw Normal View History

/*----------------------------------------------------------------------------------------------------
# THIS FILE IS A PART OF XerolySkinner's PROJECT
#
# THIS PROGRAM IS FREE SOFTWARE
#
# E-mail:ZABBCCCBBAZ@163.com
# QQ:2715099320
#
# Copyright (c) 2022 XerolySkinner
# All rights reserved.
*/
/*----------------------------------------------------------------------------------------------------
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:bsp_Console
ʱ<EFBFBD><EFBFBD>:20220805-0424
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա:<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
˵<EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
//////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------------------------------------------
// ͷ<>ļ<EFBFBD>
#include "vartable.h"
#include "string.h"
//////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------------------------------------------
// <09><><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
//
#define console_num(num) (*((num*)(console_buff+1)))
#define CONSOLE_BUFF_LEN 32
uint8_t console_buff[CONSOLE_BUFF_LEN]={0};
struct console_pack consolePack={0,0,0};
//////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------------------------------------------
// <09><><EFBFBD><EFBFBD>
//
void bsp_ConsoleInit(UART_HandleTypeDef *huart){
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
__HAL_UART_ENABLE_IT(huart,UART_IT_IDLE);
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HAL_UART_Receive_DMA(huart,console_buff,CONSOLE_BUFF_LEN);}
//----------------------------------------------------------------------------------------------------
void bsp_ConsoleJump(UART_HandleTypeDef *huart){
// <09><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ת
if(__HAL_UART_GET_FLAG(huart,UART_FLAG_IDLE)!=RESET){
__HAL_UART_CLEAR_IDLEFLAG(huart);
HAL_UART_IdleCpltCallback(huart);}}
//----------------------------------------------------------------------------------------------------
void HAL_UART_IdleCpltCallback(UART_HandleTypeDef *huart){
HAL_UART_DMAStop(huart);
if(huart==&huart1){
//////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------------------------------------------
// <09><>ťʶ<C5A5><CAB6><EFBFBD><EFBFBD>
if(console_buff[0]==0){
switch(console_buff[1]){
case 0:
printf("<EFBFBD><EFBFBD>ť0");break;
case 1:
printf("<EFBFBD><EFBFBD>ť1");break;
default:
printf("<EFBFBD><EFBFBD>ťδ֪\r\n");break;}}
//----------------------------------------------------------------------------------------------------
// <09><>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><><C4AC>С<EFBFBD>˽<EFBFBD><CBBD>շ<EFBFBD>ʽ
if(console_buff[0]==1){
memcpy(&consolePack,console_buff+1,sizeof(struct console_pack));}
//----------------------------------------------------------------------------------------------------
// <09><>ֵʶ<D6B5><CAB6><EFBFBD><EFBFBD>
if(console_buff[0]==2)printf("2<EFBFBD><EFBFBD>:%d\r\n",console_num(int));
//----------------------------------------------------------------------------------------------------
//////////////////////////////////////////////////////////////////////////////////////////////////////
}
HAL_UART_Receive_DMA(huart,console_buff,CONSOLE_BUFF_LEN);}
//////////////////////////////////////////////////////////////////////////////////////////////////////