取消串口输出互斥量保护

This commit is contained in:
2025-10-10 14:58:02 +08:00
parent 781374be51
commit 12f3c23968
2 changed files with 40 additions and 36 deletions

View File

@@ -13,7 +13,7 @@
************************************************************************************
***/
#include "usart.h"
#include "usart.h"
#include "libc.h"
#include "buff.h"
@@ -50,27 +50,27 @@ void USART_GPIO_Config (void)
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; //<2F>ٶȵȼ<C8B5>
//<2F><>ʼ<EFBFBD><CABC> TX <09><><EFBFBD><EFBFBD>
GPIO_InitStructure.GPIO_Pin = USART1_TX_PIN;
GPIO_Init(USART1_TX_PORT, &GPIO_InitStructure);
//<2F><>ʼ<EFBFBD><CABC> RX <20><><EFBFBD><EFBFBD>
GPIO_InitStructure.GPIO_Pin = USART1_RX_PIN;
GPIO_Init(USART1_RX_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = USART1_TX_PIN;
GPIO_Init(USART1_TX_PORT, &GPIO_InitStructure);
//<2F><>ʼ<EFBFBD><CABC> RX <20><><EFBFBD><EFBFBD>
GPIO_InitStructure.GPIO_Pin = USART1_RX_PIN;
GPIO_Init(USART1_RX_PORT, &GPIO_InitStructure);
//IO<49><4F><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>õ<EFBFBD>USART1
GPIO_PinAFConfig(USART1_TX_PORT,USART1_TX_PinSource,GPIO_AF_USART1);
GPIO_PinAFConfig(USART1_RX_PORT,USART1_RX_PinSource,GPIO_AF_USART1);
GPIO_PinAFConfig(USART1_TX_PORT,USART1_TX_PinSource,GPIO_AF_USART1);
GPIO_PinAFConfig(USART1_RX_PORT,USART1_RX_PinSource,GPIO_AF_USART1);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART <20>ڳ<EFBFBD>ʼ<EFBFBD><CABC>
//
void Usart_Config(void)
{
{
USART_InitTypeDef USART_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
// IO<49>ڳ<EFBFBD>ʼ<EFBFBD><CABC>
USART_GPIO_Config();
// <20><><EFBFBD>ô<EFBFBD><C3B4>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
USART_InitStructure.USART_BaudRate = USART1_BaudRate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
USART_InitStructure.USART_WordLength = USART_WordLength_8b; //<2F><><EFBFBD><EFBFBD>λ8λ
@@ -78,7 +78,7 @@ void Usart_Config(void)
USART_InitStructure.USART_Parity = USART_Parity_No ; //<2F><>У<EFBFBD><D0A3>
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //<2F><><EFBFBD>ͺͽ<CDBA><CDBD><EFBFBD>ģʽ
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; // <20><>ʹ<EFBFBD><CAB9>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
USART_Init(USART1,&USART_InitStructure); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
USART_Cmd(USART1,ENABLE); //ʹ<>ܴ<EFBFBD><DCB4><EFBFBD>1
@@ -90,20 +90,20 @@ static int usart_putc(int c)
{
USART_SendData( USART1,(u8)c ); // <20><><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return (c); //<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
}
static int usart_puts(const void *data,int size)
{
MUTEX_TAKE();
// MUTEX_TAKE();
for(int i=0;i<size;i++)
{
USART_SendData( USART1,((u8 *)data)[i] ); // <20><><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
MUTEX_RELEASE();
// MUTEX_RELEASE();
return size;
}
@@ -120,9 +120,9 @@ static int usart_getc(void)
static int usart_open(void)
{
MUTEX_INIT();
buff_init(&g_recv,1024,0,0,0);
/* <20>򿪽<EFBFBD><F2BFAABD><EFBFBD><EFBFBD>ж<EFBFBD> */
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
NVIC_InitTypeDef NVIC_InitStructure;
@@ -196,20 +196,20 @@ void USART3_Init (void)
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; //<2F>ٶȵȼ<C8B5>
//<2F><>ʼ<EFBFBD><CABC> TX <09><><EFBFBD><EFBFBD>
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_Init(GPIOB, &GPIO_InitStructure);
//<2F><>ʼ<EFBFBD><CABC> RX <20><><EFBFBD><EFBFBD>
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_Init(GPIOB, &GPIO_InitStructure);
//<2F><>ʼ<EFBFBD><CABC> RX <20><><EFBFBD><EFBFBD>
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_Init(GPIOB, &GPIO_InitStructure);
//IO<49><4F><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>õ<EFBFBD>USART1
GPIO_PinAFConfig(GPIOB,GPIO_PinSource10,GPIO_AF_USART3);
GPIO_PinAFConfig(GPIOB,GPIO_PinSource11,GPIO_AF_USART3);
GPIO_PinAFConfig(GPIOB,GPIO_PinSource10,GPIO_AF_USART3);
GPIO_PinAFConfig(GPIOB,GPIO_PinSource11,GPIO_AF_USART3);
USART_InitTypeDef USART_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
// <20><><EFBFBD>ô<EFBFBD><C3B4>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
USART_InitStructure.USART_BaudRate = 115200; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
USART_InitStructure.USART_WordLength = USART_WordLength_8b; //<2F><><EFBFBD><EFBFBD>λ8λ
@@ -218,9 +218,9 @@ void USART3_Init (void)
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //<2F><><EFBFBD>ͺͽ<CDBA><CDBD><EFBFBD>ģʽ
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; // <20><>ʹ<EFBFBD><CAB9>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
USART_Init(USART3,&USART_InitStructure); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn; //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ͨ<EFBFBD><CDA8>
@@ -229,8 +229,8 @@ void USART3_Init (void)
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><EFBFBD><EFBFBD>
USART_Cmd(USART3,ENABLE); //ʹ<>ܴ<EFBFBD><DCB4><EFBFBD>1
USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
}
@@ -242,7 +242,7 @@ static u8 g_keyPressed=0;
void USART3_IRQHandler (void)
{
u8 res=0;
if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
{
g_key=USART_ReceiveData(USART3);
if ((g_keyPress^g_key)&g_keyPress)

View File

@@ -495,3 +495,7 @@
2025.9.21
usb<73><62><EFBFBD><EFBFBD>û<EFBFBD>з<EFBFBD>Ӧ<EFBFBD><D3A6>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>û<EFBFBD>йر<D0B9>vbus<75><73><EFBFBD><EFBFBD>
ö<>ٲ<EFBFBD><D9B2>ɹ<EFBFBD><C9B9><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>޸ij<DEB8><C4B3><EFBFBD>id
2025.10.10
ʹ<>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><E2A3AC><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
<09><><EFBFBD>¸<EFBFBD><C2B8><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC>޷<EFBFBD><DEB7><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD><CEB3><EFBFBD><EFBFBD>ȡ<EFBFBD>
<09><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰʹ<C7B0><CAB9><EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>api<70><69>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>apiֻ<69><D6BB><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3>е<EFBFBD><D0B5><EFBFBD>