STM32F103RCT6上位机通过串口实现对led的开关控制;通过switch判断接收端的寄存器的值,来执行不同操作。
单片机源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- int main(void)
- {
- // u8 t;
- // u8 len;
- // u16 times=0;
- // char ReceivedData = NULL;
- //ReceivedData 在串口中断函数中获取 接收的值
-
- delay_init(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
- uart_init(115200); //串口初始化为9600
- LED_Init(); //初始化与LED连接的硬件接口
-
- while(1)
- {
-
- switch (ReceivedData)
- {
- case 'A': LED0=0;
- printf("LED0(ON) \r\n");
- break;
- case 'B': LED0=1;
- printf("LED0(OFF)\r\n");
- break;
- case 'C': LED1=0;
- printf("LED1(ON)\r\n");
- break;
- case 'D': LED1=1;
- printf("LED1(OFF)\r\n");
- break;
- default:
- break;
-
-
- }
- // delay_ms(200);
- //ReceivedData = USART_ReceiveData(USART1);
- // printf("Positionen: %d \r\n", ReceivedData);
- // if (ReceivedData == '1')
- // {
- // printf("LED1(ON)");
- // LED1=0;
- // delay_ms(10);
- // }
- // else if(ReceivedData=='0')
- // {
- // LED1=1;
- // delay_ms(10);
- // printf("LED1(OFF)");
- // }
- // else
- // {
- // LED0 = 1;
- // // delay_ms(20);
- // }
- // ReceivedData =NULL;
-
- }
- }
复制代码
所有资料51hei附件下载:
判断串口.7z
(181.79 KB, 下载次数: 29)
|