stm32f1xx串口控制灯开关实验

发布者:量子心跳最新更新时间:2019-01-14 来源: eefocus关键字:stm32f1xx  串口控制  灯开关 手机看文章 扫描二维码
随时随地手机看文章

工程文件使用cubemx建立,因此程序是基于HAL库开发,设置如图所示


查看原理图可以知道PA10和PA9是复用IO口,这里用来做串口的RX与TX端,在左侧的栏目中就可以设置,将状态从RESET改成第二个A字开头的即可



在configuration中,记得使能中断,具体操作如下,点击NVIC_Settings选项卡,在Enabled上打勾即可,然后生成代码



在代码的int main(void)下,添加如下代码:


flag是用来控制状态的变量,HAL_UART_Receive_IT()与HAL_UART_Transmit_IT()是两个成对的库函数,它们的特点是会产生一个中断,直到完成数据的发送或者接收才会顺序执行下面的程序,而HAL_UART_Receive()和HAL_UART_Transimit()则是与HAL_Delay()之类的函数一样,直接顺序执行,但是注意,这个函数的第四项规定了它运行的时间上限,函数的具体参数可以查阅相关手册


int main(void)

{

  /* USER CODE BEGIN 1 */

 

  /* 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_USART1_UART_Init();

  /* USER CODE BEGIN 2 */

 

  /* USER CODE END 2 */

 

  /* Infinite loop */

  /* USER CODE BEGIN WHILE */

  while (1)

  {

uint8_t flag;

HAL_UART_Receive_IT(&huart1,&flag,1);

if(flag == '1')

{

HAL_UART_Transmit(&huart1,"Received 1",10,0xffff);

HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,RESET);

HAL_Delay(1000);

}

else if(flag == '0')

{

HAL_UART_Transmit(&huart1,"Received 0",10,0xffff);

HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,SET);

HAL_Delay(1000);

}

  /* USER CODE END WHILE */

 

  /* USER CODE BEGIN 3 */

 

  }

  /* USER CODE END 3 */

 

}

编译烧录之后就会发现可以利用串口输入的"1"和"0"控制板上led的亮灭了



关键字:stm32f1xx  串口控制  灯开关 引用地址:stm32f1xx串口控制灯开关实验

上一篇:STM32中关于检测按键的一些问题
下一篇:STM32 状态机实现按键消抖处理源码

推荐阅读最新更新时间:2024-03-16 16:22

开关电源的研制
    摘要: 以开关电源取代传统的线性电源,是电源技术发展趋向。介绍以一只开关电源模块组成的氘灯电源,分析其工作过程。     关键词: 开关电源  线性电源  氘类 1 引言 氘灯是用于分光光度计最为理想的紫外光源,其光谱连续,波长190nm~400nm。传统的氘灯电源是线性电源,其特点是特性较稳定,但其缺点却很难克服:其一是难以适应国际民用通用电压,即110V和220V交流输入之间的自动转换;其二是变压器笨重、恒流源损耗较大。开关电源则可避免上述缺点,目前也出现了氘灯的开关电源,但其灯丝、触发、点灯等几组电源是独立的,成本较高,实际应用中,意义不大。本文介绍一种仅用一只开关电源模块组成的氘灯电源,成
[电源管理]
金刚石合成控制系统中多串口通信技术的设计与实现
摘要:通过多串口通信技术在金刚石合成控制系统中的应用,讨论了32位Windows操作系统下,VC多串口通信技术的设计与实现方法,并运用面向对象方法和多线程技术设计了一个比较完善的串口通信类。阐述了用VC开发上位机与PLC之间的串口通信程序设计方法和实现技术。 关键词:串口通信;面向对象方法;多线程;PLC 1 引言 传统的金刚石合成机控制系统是由一个PLC和一个可显示终端构成。这种传统的控制系统一般具有如下缺点: (1) 系统所有的工作都由PLC完成,其控制精度较差,致使合成的金刚石质量较差; (2) 显示终端的平面尺寸过小,这一方面使得操作人员观察系统的状态很不方便,另一方面也常常会引起误操作; (3) 金刚石合成
[工业控制]
串口控制的LED电路图
串口控制的LED灯电路图
[电源管理]
<font color='red'>串口</font><font color='red'>控制</font>的LED<font color='red'>灯</font>电路图
一文看懂节能适用的高频恒流LED开关电源设计
LED开关电源高频化是其发展的方向,高频化使开关电源小型化,并使开关电源进入更广泛的应用领域,特别是在高新技术领域的应用,推动了高新技术产品的小型化、轻便化。另外开关电源的发展与应用在节约能源、节约资源及保护环境方面都具有重要的意义。    LED开关电源中应用的电子器件主要为:LED二极管、IGBT和MOSFET。SCR在开关电源输入整流电路及软启动电路中有少量应用,GTR驱动困难,开关频率低,逐渐被IGBT和MOSFET取代。 LED开关电源三个条件    1、开关是:电力电子器件工作在开关状态而不是线性状态    2、高频:电力电子器件工作在高频而不是接近工频的低频    3、直流:开关电源输出的是直流而不是交流
[电源管理]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved