zoukankan      html  css  js  c++  java
  • 【iCore4 双核心板_ARM】例程四:USART实验——通过命令控制LED

    实验原理:

      开发板上自带一片CH340芯片,完成本实验电脑需要安装CH340驱动,

    CH340的TXD连接STM32的GPIO(PXC7),CH340的RXD连接STM32的

    GPIO(PC6),通过串口发送命令控制LED的亮灭。串口命令如下:

    LED_RED_ONCRLF---------------------LED红灯亮
    LED_RED_OFFCRLF-------------------LED红灯灭
    LED_BLUE_ONCRLF-------------------LED蓝灯亮
    LED_BLUE_OFFCRLF------------------LED蓝灯灭
    LED_GREEN_ONCRLF-----------------LED绿灯亮
    LED_GREEN_OFFCRLF---------------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!
    ");                                                            //´®¿ÚÐÅÏ¢Êä³ö 
    
      /* 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!
    ");
                }
                if(memcmp(buffer,"led_red_off",strlen("led_red_off")) == 0){
                    LED_RED_OFF;
                    usart6.printf("ok!
    ");
                }    
                if(memcmp(buffer,"led_green_on",strlen("led_green_on")) == 0){
                    LED_GREEN_ON;
                    usart6.printf("ok!
    ");
                }    
                if(memcmp(buffer,"led_green_off",strlen("led_green_off")) == 0){
                    LED_GREEN_OFF;
                    usart6.printf("ok!
    ");
                }    
                if(memcmp(buffer,"led_blue_on",strlen("led_blue_on")) == 0){
                    LED_BLUE_ON;
                    usart6.printf("ok!
    ");
                }    
                if(memcmp(buffer,"led_blue_off",strlen("led_blue_off")) == 0){
                    LED_BLUE_OFF;
                    usart6.printf("ok!
    ");
                }                
            }
      }
      /* USER CODE END 3 */
    
    }

    源代码下载链接:

    链接:http://pan.baidu.com/s/1pLbnxqV 密码:a849

    iCore4链接:

  • 相关阅读:
    oo——第三单元总结
    oo第三单元总结
    【BUAA软工】提问回顾与个人总结
    【BUAA软工】HTTP协议前后端实现及实战北航云盘爬取
    【BUAA软工】软件案例分析
    【BUAA软工】结对编程作业
    【BUAA 软工个人项目作业】玩转平面几何
    【BUAA 软工博客作业】个人博客作业
    【BUAA 软工热身作业】继往开来,勇攀高峰
    BUAA-OO-第四单元总结——终章
  • 原文地址:https://www.cnblogs.com/xiaomagee/p/7325049.html
Copyright © 2011-2022 走看看