標籤:中斷 end 初始化 color art int link 連接埠 延時
使用庫函數,調試的結果在標紅程式上,
int main(void)
{
u8 a;
u8 t;
u8 len;
u16 times=0;
delay_init(); //延時函數初始化
NVIC_Configuration(); //設定NVIC中斷分組2:2位搶佔優先順序,2位響應優先順序
uart_init(9600); //串口初始化為9600
LED_Init(); //LED連接埠初始化
KEY_Init(); //初始化與按鍵串連的硬體介面
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;//得到此次接收到的資料長度
printf("\r\n您發送的訊息為:\r\n\r\n");
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1發送資料
a=USART_RX_BUF[t];
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待發送結束
}
printf("\r\n\r\n");//插入換行
USART_RX_STA=0;
}else
{
times++;
if(times%5000==0)
{
printf("\r\nSTM32 出口控制led\r\n");
}
if(times%200==0)printf("請輸入資料,以斷行符號鍵結束\n");
if(a==‘0’)LED0=0;//閃爍LED0,提示系統正在運行.
if(a==‘1’)LED0=1;//閃爍LED1,提示系統正在運行.
if(a==‘2’)LED1=0;//閃爍LED0,提示系統正在運行.
if(a==‘3’)LED1=1;//閃爍LED1,提示系統正在運行.
delay_ms(10);
}
}
}
在串口調試中證實可行。
上位機控制led