实验原理:

  开发板上自带一片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[];
/* 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(); //´®¿Ú²¨ÌØÉèÖÃ
usart6.printf("Hello, I am iCore4!\r\n"); //´®¿ÚÐÅÏ¢Êä³ö /* USER CODE END 2 */ /* Infinite loop */
/* USER CODE BEGIN WHILE */
while ()
{
/* USER CODE END WHILE */ /* USER CODE BEGIN 3 */
if(usart6.receive_ok_flag){ //½ÓÊÕÍê³É
usart6.receive_ok_flag = ;
for(i = ;i < ;i++){
buffer[i] = tolower(usart6.receive_buffer[i]);
} if(memcmp(buffer,"led_red_on",strlen("led_red_on")) == ){
LED_RED_ON;
usart6.printf("ok!\r\n");
}
if(memcmp(buffer,"led_red_off",strlen("led_red_off")) == ){
LED_RED_OFF;
usart6.printf("ok!\r\n");
}
if(memcmp(buffer,"led_green_on",strlen("led_green_on")) == ){
LED_GREEN_ON;
usart6.printf("ok!\r\n");
}
if(memcmp(buffer,"led_green_off",strlen("led_green_off")) == ){
LED_GREEN_OFF;
usart6.printf("ok!\r\n");
}
if(memcmp(buffer,"led_blue_on",strlen("led_blue_on")) == ){
LED_BLUE_ON;
usart6.printf("ok!\r\n");
}
if(memcmp(buffer,"led_blue_off",strlen("led_blue_off")) == ){
LED_BLUE_OFF;
usart6.printf("ok!\r\n");
}
}
}
/* USER CODE END 3 */ }

源代码下载链接:

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

iCore4链接:

【iCore4 双核心板_ARM】例程四:USART实验——通过命令控制LED的更多相关文章

  1. 【iCore4 双核心板_ARM】例程八:定时器PWM实验——呼吸灯

    实验原理: STM32的定时器有PWM功能,iCore4的蓝色LED连接在定时器的输出接口上, 可以通过定时器的PWM输出控制LED的亮度,从而实验呼吸灯的功能. 核心代码: int main(voi ...

  2. 【iCore4 双核心板_ARM】例程一:ARM驱动三色LED

    实验原理: 通过STM32的三个GPIO驱动一个三色LED,引脚PB2接红色LED(ARM_LEDR), 引脚PA9接蓝色LED(ARM_LEDB),引脚PA10接绿色LED(ARM_LEDG),   ...

  3. 【iCore4 双核心板_ARM】例程三十四:U_DISK_IAP_ARM实验——更新升级STM32

    实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. 3.按下按键上电或写程序将进行升 ...

  4. 【iCore4 双核心板_ARM】例程二十四:LWIP_DHCP实验——动态分配IP地址

    实验现象: 核心代码: int main(void) { system_clock.initialize(); led.initialize(); adc.initialize(); delay.in ...

  5. 【iCore4 双核心板_ARM】例程十四:FATFS实验——文件操作

    实验现象: 核心代码: int main(void) { int i,j; FIL file; FATFS fatfs; static FRESULT res; unsigned ]; unsigne ...

  6. 【iCore4 双核心板_ARM】例程三十三:SD_IAP_ARM实验——更新升级STM32

    实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. 3.按下按键上电或写程序将进行升 ...

  7. 【iCore4 双核心板_ARM】例程三十二:UART_IAP_ARM实验——更新升级STM32

    实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. BIN升级文件产生方法: 1.编 ...

  8. 【iCore4 双核心板_ARM】例程十五:USB_CDC实验——高速数据传输

    实验方法: 1.安装USB CDC驱动,驱动安装方法参考例程包中安装方法文档. 2.将跳线冒跳至USB_OTG,通过Micro USB 线将iCore4 USB-OTG接口与电脑相连. 3.打开上位机 ...

  9. 【iCore4 双核心板_ARM】例程十六:USB_HID实验——双向数据传输

    实验方法: 1.USB_HID协议免驱动,此例程不需要驱. 2.将跳线冒跳至USB_OTG,通过Micro USB 线将iCore4 USB-OTG接口与电脑相连. 3.打开上位机软件usb_hid. ...

随机推荐

  1. ASP.NET Core 文件系统

    ASP.NET Core 文件系统 静态文件 目录浏览 默认页面 MIME类型配置 实战文件服务器  紧接上一讲 中间件 之后,今天来我们来讲一下关于 ASP.NET  Core 中静态文件服务. 什 ...

  2. MongoDB--集群

    为什么需要集群 为了让数据安全 高(24* 7)数据可用性 灾难恢复 无停机维护(如备份,索引重建,压实) 读缩放(额外的副本读取) 副本集对应用程序是透明 设置集群 准备工作 在MongoDB的集群 ...

  3. SQL SERVER字符串中的空格去除

    1.LTRIM 删除起始空格后返回字符表达式. 语法 LTRIM   (   character_expression   ) 参数 character_expression 是字符或二进制数据表达式 ...

  4. Python3NumPy——ndarray对象

    Python3NumPy——ndarray对象 1.前沿 推荐导入语法:import numpy as np NumPy中使用ndarray对象表示数组,ndarray是NumPy库的核心对象 2.创 ...

  5. 潭州课堂25班:Ph201805201 MySQL第三课 (课堂笔记)

    单表查询: select * from select sname from stu; 条件查询 select sname from stu where sid=2; select sname from ...

  6. C、C++ 学习经历

    1.可以考虑先学习C. 大多数时候,我们学习语言的目的,不是为了成为一个语言专家,而是希望成为一个解决问题的专家.做一个有用的程序员,做一个赚钱的程序员.我们的价值,将体现在客户价值上,而不是语言写得 ...

  7. Android getWidth和getMeasuredWidth

    1. 在一个类初始化时,即在构造函数当中我们是得不到View的实际大小的.感兴趣的朋友可以试一下,getWidth()和getMeasuredWidth()得到的结果都是0.但是我们可以从onDraw ...

  8. 使用 SHOW STATUS 查看mysql 服务器状态信息

    在LAMP架构的网站开发过程中,有些时候我们需要了解MySQL的服务器状态信息,譬如当前MySQL启动后的运行时间,当前MySQL的客户端会话连接数,当前MySQL服务器执行的慢查询数,当前MySQL ...

  9. Linux和类Unix系统上5个最佳开源备份工具

    一个好的备份最基本的目的就是为了能够从一些错误中恢复: 人为的失误 磁盘阵列或是硬盘故障 文件系统崩溃 数据中心被破坏等等. 所以,我为大家罗列了一些开源的软件备份工具. 当为一个企业选择备份工具的时 ...

  10. 【linux】linux下对java程序生成dump文件,并使用IBM Heap Analyzer进行分析,查找定位内存泄漏的问题代码

    1.首先,java程序启动在linux,怎么生成dump文件? 1>第一步,首先你需要得到java程序的PID,最简单的方法使用如下命令 ps -ef|grep java 或者如果是docker ...