5 黑币
#include "stm32f10x.h"
#include "usart.h"
#include "delay.h"
#include "mlx90614.h"
#include "sys.h"
extern uint8_t aRxBuffer[100];
extern uint8_t aRxCounter;
extern uint8_t aReceiveState;
void USART_HalfDuplexCmd(USART_TypeDef* USARTx, FunctionalState NewState)
{
/* Check the parameters */
assert_param(IS_USART_ALL_PERIPH(USARTx));
assert_param(IS_FUNCTIONAL_STATE(NewState));
if (NewState != DISABLE)
{
/* Enable the Half-Duplex mode by setting the HDSEL bit in the CR3 register */
USARTx->CR3 |= CR3_HDSEL_Set;
}
else
{
/* Disable the Half-Duplex mode by clearing the HDSEL bit in the CR3 register */
USARTx->CR3 &= CR3_HDSEL_Reset;
}
}
volatile uint8_t aRxBuffer[100]={0x00};
volatile uint8_t aRxCounter=0;
volatile uint8_t aReceiveState=0;
int main(void)
{
USART_Config();
//DEBUG_USARTx = USART1;
// DEBUG_USARTx = USART2;
Temperature = SMBus_ReadTemp();
delay_ms(500);
while(1)
{
Temperature = SMBus_ReadTemp();
// ′®¿ú1μÄêy¾Y
if(aReceiveState==1)//èç1û½óêÕμ½1Ö¡êy¾Y
{
aReceiveState=0;
if(aRxBuffer[0]=='a')
{
if(aRxBuffer[2]=='1')
{ x=1; }
else if(aRxBuffer[2]=='2')
{ x=0; }
}
}
if(x==1)
{
DEBUG_USARTx = USART1;
printf("x0.val=%d",(int)(Temperature*10)); //x0.val=%d为向串口屏发送的指令
delay_ms(500);
usart_pm_end();
if(x==2)
{
DEBUG_USARTx = USART1;
printf("x0.val=a10"); ////x0.val=%d为向串口屏发送的指令
}
}
我来回答