/*LCD_INIT()函数使用了printf函数,所以想使用串口1点亮屏幕,然后想用串口2收发数据。
未加串口2时屏幕可以正常显示,加了串口2程序之后屏幕无法显示了*/
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "ser.h"
#include "usart.h"
/*LCD_init()oˉêyμ÷óÃáËprintf£¬ËùòÔ′®¿ú1±ØDëê1óÃ
*/
u8 usa3_buf[6]={0,0,0,0,0,0};
u8 a,TEMP,start_flag;
void USART_Hand(void);
int main(void)
{
delay_init(); //Ñóê±oˉêy3õê¼»ˉ
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //éèÖÃNVICÖD¶Ï·Ö×é2:2λÇàÕ¼óÅÏ輶£¬2λÏìó|óÅÏ輶
usart2_init(9600);
uart_init(115200); //′®¿ú3õê¼»ˉ
//
LED_Init(); //LED¶Ë¿ú3õê¼»ˉ
LCD_Init();
LCD_Clear(WHITE);
POINT_COLOR=RED;
LCD_ShowString(30,40,210,24,16,"TEMP: ");
while(1)
{
USART_Hand();
if(start_flag==1)
{
USART_Cmd(USART1,DISABLE);
start_flag=0;
// TEMP= usa3_buf[2]+usa3_buf[3]+usa3_buf[4];
// if((usa3_buf[0] == 0xaa) && (usa3_buf[1] == 0x55))
// {
LED0=0;
// if(usa3_buf[5]==0x06)
// {
LCD_ShowxNum(70,40,usa3_buf[2],3,16,0);
LCD_ShowxNum(70,56,usa3_buf[0],3,16,0);
LCD_ShowxNum(70,72,usa3_buf[1],3,16,0);
LCD_ShowxNum(70,88,usa3_buf[3],3,16,0);
LCD_ShowxNum(70,104,usa3_buf[4],3,16,0);
LCD_ShowxNum(70,120,55,3,16,0);
// }
// }
USART_Cmd(USART1,ENABLE);
}
}
}
void USART_Hand(void)
{
u32 i;
if(USART_GetITStatus(USART1,USART_IT_RXNE) != RESET)
{
usa3_buf[0] = USART_ReceiveData(USART1);
i = 1;
while(1)
{
if(USART_GetITStatus(USART1,USART_IT_RXNE) != RESET)
{
usa3_buf[i] = USART_ReceiveData(USART1);
i++;
if(i > 5)
{ LED1=0;
i = 0;
start_flag=1;
break;
}
}
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>