【iCore4 双核心板_ARM】例程四:USART实验——通过命令控制LED
2017-08-09 14:22
579 查看
实验原理:
开发板上自带一片CH340芯片,完成本实验电脑需要安装CH340驱动,
CH340的TXD连接STM32的GPIO(PXC7),CH340的RXD连接STM32的
GPIO(PC6),通过串口发送命令控制LED的亮灭。串口命令如下:
LED_RED_ON\CR\LF---------------------LED红灯亮
LED_RED_OFF\CR\LF-------------------LED红灯灭
LED_BLUE_ON\CR\LF-------------------LED蓝灯亮
LED_BLUE_OFF\CR\LF------------------LED蓝灯灭
LED_GREEN_ON\CR\LF-----------------LED绿灯亮
LED_GREEN_OFF\CR\LF---------------LED绿灯灭
实验现象:
打开串口软件通过串口输入相应的命令,控制LED的状态。
源代码下载链接:
链接:http://pan.baidu.com/s/1pLbnxqV 密码:a849
iCore4链接:
开发板上自带一片CH340芯片,完成本实验电脑需要安装CH340驱动,
CH340的TXD连接STM32的GPIO(PXC7),CH340的RXD连接STM32的
GPIO(PC6),通过串口发送命令控制LED的亮灭。串口命令如下:
LED_RED_ON\CR\LF---------------------LED红灯亮
LED_RED_OFF\CR\LF-------------------LED红灯灭
LED_BLUE_ON\CR\LF-------------------LED蓝灯亮
LED_BLUE_OFF\CR\LF------------------LED蓝灯灭
LED_GREEN_ON\CR\LF-----------------LED绿灯亮
LED_GREEN_OFF\CR\LF---------------LED绿灯灭
实验现象:
打开串口软件通过串口输入相应的命令,控制LED的状态。
int main(void) { /* USER CODE BEGIN 1 */ int i; char buffer[20]; /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_USART6_UART_Init(); /* USER CODE BEGIN 2 */ usart6.initialize(9600); //´®¿Ú²¨ÌØÉèÖà usart6.printf("Hello, I am iCore4!\r\n"); //´®¿ÚÐÅÏ¢Êä³ö /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ if(usart6.receive_ok_flag){ //½ÓÊÕÍê³É usart6.receive_ok_flag = 0; for(i = 0;i < 20;i++){ buffer[i] = tolower(usart6.receive_buffer[i]); } if(memcmp(buffer,"led_red_on",strlen("led_red_on")) == 0){ LED_RED_ON; usart6.printf("ok!\r\n"); } if(memcmp(buffer,"led_red_off",strlen("led_red_off")) == 0){ LED_RED_OFF; usart6.printf("ok!\r\n"); } if(memcmp(buffer,"led_green_on",strlen("led_green_on")) == 0){ LED_GREEN_ON; usart6.printf("ok!\r\n"); } if(memcmp(buffer,"led_green_off",strlen("led_green_off")) == 0){ LED_GREEN_OFF; usart6.printf("ok!\r\n"); } if(memcmp(buffer,"led_blue_on",strlen("led_blue_on")) == 0){ LED_BLUE_ON; usart6.printf("ok!\r\n"); } if(memcmp(buffer,"led_blue_off",strlen("led_blue_off")) == 0){ LED_BLUE_OFF; usart6.printf("ok!\r\n"); } } } /* USER CODE END 3 */ }
源代码下载链接:
链接:http://pan.baidu.com/s/1pLbnxqV 密码:a849
iCore4链接:
相关文章推荐
- 【iCore1S 双核心板_ARM】例程四:USART通信实验——通过命令控制LED
- 【iCore3 双核心板】例程四:USART通信实验——通过命令控制LED
- 【iCore4 双核心板_ARM】例程十二:通用定时器实验——定时点亮LED
- 【iCore4 双核心板_ARM】例程五:SYSTICK定时器 实验——定时点亮LED
- 【iCore4 双核心板_ARM】例程二十:LWIP_TCP_CLIENT实验——以太网数据传输
- 【iCore4 双核心板_ARM】例程三十:U_DISK_IAP_FPGA实验——更新升级FPGA
- 【iCore4 双核心板_ARM】例程三十五:HTTP_IAP_ARM实验——更新升级STM32
- 【iCore4 双核心板_FPGA】例程十三:基于SPI的ARM与FPGA通信实验
- 【iCore4 双核心板_FPGA】例程十六:基于双口RAM的ARM+FPGA数据存取实验
- 【iCore4 双核心板_ARM】例程二十四:LWIP_DHCP实验——动态分配IP地址
- 【iCore4 双核心板_FPGA】例程十五:基于单口RAM的ARM+FPGA数据存取实验
- 【iCore4 双核心板_ARM】例程二十五:LWIP_DNS实验——域名解析
- 【iCore4 双核心板_ARM】例程三十六:DAC实验——输出直流电压
- 【iCore4 双核心板_FPGA】例程十二:基于UART的ARM与FPGA通信实验
- 【iCore4 双核心板_ARM】例程二十六:LWIP_MODBUS_TCP实验——电源监控
- 【iCore4 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态
- 【iCore4 双核心板_ARM】例程十六:USB_HID实验——双向数据传输
- 【iCore4 双核心板_ARM】例程八:定时器PWM实验——呼吸灯
- 【iCore4 双核心板_ARM】例程九:ADC实验——电源监控
- 【iCore1S 双核心板_ARM】例程七:通用定时器实验——定时点亮LED