精华内容
下载资源
问答
  • STM32串口控制LED

    2018-06-28 09:10:34
    程序是基于STM32F103ZET6的一个实验程序。可通过发送指令控制LED灯,可以开启和关闭LED灯,以及蜂鸣器等外设
  • 串口通信控制LED

    2019-05-27 02:35:35
    NULL 博文链接:https://as1001001.iteye.com/blog/600237
  • 本文主要为51单片机串口通信点亮led程序,下面一起来学习下
  • 程序通过keil5软件编写,你可以通过串口发送指令,来控制STM32F103C8T6单片机,并且通过串口返回LED的状态。(注意:程序中我使用的是PB8引脚和USART1串口。结和自己情况可以改变程序中的引脚,同时你也可以在引脚上...
  • 单片机串口通信控制LED灯亮灭,串口输入数字1,灯亮,输入其他,灯灭,里面有相关安装软件,可供下载,不会操作的,里面附有经典文章一篇,看完秒懂。
  • 通过延时函数,中断函数,9600波特率,switch ——case等函数完成程序 使用串口助手发送16进制数控制相应的led灯的亮灭
  • 改编stm32通信串口控制led灯并返回值到OLED,附加测试视频
  • /*注意设置波特率为4800,向串口不断输入0,便可实现led的亮灭*/#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器typedef unsigned int u16; //对数据类型进行声明定义typedef unsigned char u8;sbit...

    /*注意设置波特率为4800,向串口不断输入0,便可实现led的亮灭*/

    #include "reg52.h"    //此文件中定义了单片机的一些特殊功能寄存器

    typedef unsigned int u16;   //对数据类型进行声明定义

    typedef unsigned char u8;

    sbit led0=P2^0;

    sbit led1=P2^1;

    sbit led2=P2^2;

    /*******************************************************************************

    * 函数名         :UsartInit()

    * 函数功能     :设置串口

    * 输入           : 无

    * 输出           : 无

    *******************************************************************************/

    void UsartInit()

    {

    SCON=0X50;   //设置为工作方式1

    TMOD=0X20;   //设置计数器工作方式2

    PCON=0X80;   //波特率加倍

    TH1=0XF4;    //计数器初始值设置,注意波特率是4800的

    TL1=0XF4;

    ES=1;      //打开接收中断

    EA=1;      //打开总中断

    TR1=1;     //打开计数器

    }

    /*******************************************************************************

    * 函 数 名       : main

    * 函数功能   : 主函数

    * 输    入       : 无

    * 输    出      : 无

    *******************************************************************************/

    void main()

    {

    UsartInit();  // 串口初始化

    while(1);

    }

    /*******************************************************************************

    * 函数名         : Usart() interrupt 4

    * 函数功能    : 串口通信中断函数

    * 输入           : 无

    * 输出           : 无

    *******************************************************************************/

    void Usart() interrupt 4

    {

    u8 receiveData,i;

    if(SBUF=='0')

    led0=~led0;

    receiveData=SBUF;//出去接收到的数据

    RI = 0;//清除接收中断标志位

    SBUF=receiveData;//将接收到的数据放入到发送寄存器

    while(!TI);    //等待发送数据完成

    TI=0;       //清除发送完成标志位

    }

    展开全文
  • 串口控制FPGA Led亮灭

    2015-01-08 23:31:18
    http://blog.csdn.net/mybelief321/article/details/42532247 自己用C#写的通过串口控制FPGA的LED灯亮灭,数码管显示LED亮的个数,FPGA的程序也是自己看书编写修改的,分享出来吧,但愿对你有用
  • 通过串口控制LED灯.zip

    2020-02-05 23:56:23
    通过串口1发送1 2分别控制两个LED灯的亮灭,注意事项:波特率115200.实验现象:通过串口1发送1点亮红色LED灯 再次发送1即可熄灭红色LED灯,通过串口1发送2点亮绿色LED灯,再次发送2即可熄灭绿色LED灯。
  • 串口控制LED.rar

    2020-04-02 23:20:39
    开发板中连接了MCU的2个串口,分别为USART1和USART3,其中USART1通过CH340G接PC端USB口,实现USB转串口功能,可以用于程序下载和串口通信,但通过PC端的超级终端连接时不能连接,所以本程序使用开发板上的另一个串口...
  • pc串口控制流水灯的程序,在电脑编译环境下可以实现与单片机(支持51、32、msp等所有带有串口的single chip)之间的串口通信,此时电脑作为上位机,单片机作为下位机通信。
  • 通过串口控制LED的亮灭

    千次阅读 多人点赞 2021-05-01 17:31:19
    五一假期,博主闲着没事,想起之前自己调试串口控制LED的亮灭问题尚未解决,便开始调试,再调试了一会时间后,觉得应该把它记录下来。 这一切问题的起源还得怪之前调试不认真,太浮躁了。 文章目录USART 系列文章...

    USART 系列文章目录

    五一假期,博主闲着没事,想起之前自己调试串口控制LED的亮灭问题尚未解决,便开始调试,再调试了一会时间后,觉得应该把它记录下来。


    这一切问题的起源还得怪之前调试不认真,太浮躁了。



    前言

    其中使用USART串口的一些配置方法在我之前的博客有粗略带过,纯小白看不懂建议看看其他csdn大佬们写的配置USART的方法和步骤。
    我写这篇博客的目的是通过USART串口控制LED的亮灭问题,记录下我所调试过程中遇到的问题,和对于串口的一些自己的理解。


    一、配置串口

    由于我之前的博客有带过,就那几个步骤,注意下需要和电脑进行通信所配置的串口号、波特率、奇偶校验位、停止位、数据位那几个特殊注意下,以方便和电脑的串口调试助手进行通信。
    我所使用的是XCOM的串口调试助手。
    如图
    在这里插入图片描述
    这里就贴下我所配置的串口代码吧

    void uart_init(u32 bound){
     	//GPIO端口设置
     	GPIO_InitTypeDef GPIO_InitStructure;
    	USART_InitTypeDef USART_InitStructure;
    
    	 
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);	//使能USART1,GPIOA时钟
      
    	//USART1_TX   GPIOA.9
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;	//复用推挽输出
      GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9
       
      //USART1_RX	  GPIOA.10初始化
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
      GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10  
    
    
       //USART 初始化设置
    
    	USART_InitStructure.USART_BaudRate = bound;//串口波特率
    	USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式
    	USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位
    	USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位
    	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制
    	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;	//收发模式
    
      USART_Init(USART1, &USART_InitStructure); //初始化串口1
      USART_Cmd(USART1, ENABLE);                    //使能串口1 
    
    }
    

    二、主要操作

    我试过了两种方法来控制LED亮灭,一种是通过串口中断从而使LED的状态翻转,另外一种则是跳过中断,在主函数中使LED的状态翻转。

    1.通过串口中断

    基于配置好的串口,我们需要加上一个串口中断初始化的配置函数和串口中断处理函数

    串口中断初始化的配置函数如下:

    void NVIC_Init()
    {
    	NVIC_InitTypeDef NVIC_InitStructure;
    	
    	//Usart1 NVIC 配置
      
      NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
    	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3
    	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;		//子优先级3
    	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;			//IRQ通道使能
    	NVIC_Init(&NVIC_InitStructure);	//根据指定的参数初始化VIC寄存器
      	
      	USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断
    }
    

    对于中断的相应问题日后的会特意写一篇博客来分析。

    font color=#256AAA >串口中断处理函数如下:

    void USART1_IRQHandler(void)  
    {
    	u8 Res;
    	
    	if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
    	{
    		Res =USART_ReceiveData(USART1);	//读取接收到的数据
    		printf("Receive Succsed: %2x \r\n", Res);//回复接收完成
            if(Res==0x01)
              LED0=!LED0;
    		//USART_ClearFlag(USART1,USART_IT_RXNE);
    	}
    }
    

    分析:在该段函数中,我先定义了一个Res的变量来储存串口接收到的数值,再通过printf函数(使用的是原子哥所重写的函数)将其打印到串口。
    使用得到Res的函数与对应的数值进行比较,从而翻转LED0的状态。

    2.通过主函数

    char ReceivedData = NULL;
    
    int main( void )
    {
    	u8 Receive_Data = 0;
    	
    	NVIC_PriorityGroupConfig( NVIC_PriorityGroup_2 );       /* 设置NVIC中断分组2:2位抢占优先级,2位响应优先级 */
    	uart_init( 115200 );                                      /* 串口初始化为9600 */
    	delay_init();                                           /* 延时函数初始化 */
    	LED_Init();
    	BEEP_Init();
    	
    	
    
    	
    	while ( 1 )
    	{
    		delay_ms(1000);
    		printf("开始测试\r\n");
    
    		
    		if(USART_GetITStatus(USART1, USART_IT_RXNE))        //若接收到数据
            {
                Receive_Data = USART_ReceiveData(USART1);        //读取数据后,RXNE标志位自动清零;
                printf("Receive Succsed: %d \r\n", Receive_Data);
                if(Receive_Data == '1')
    			{
                    LED0 = !LED0;
    			}
    			else
    			{
    				printf("runing\r\n");
    				delay_ms(2000);
    			}
    		}
    		
    
    	}
    }
    
    

    分析:在该段函数中,同样也是使用了一个中间变量来储存串口接收的数据。

    ———————————————————————————————————————

    要注意的是:用此方法,轮询接收stm32发送的时候,只能接收一个字符,而不能接收多个字符,接收多个字符就会出问题,同时在串口调试助手的时候,要将“发送新行”取消勾选,否则也是会出问题的。

    三、库函数分析

    在这几段代码中我都使用到了库函数,下面将其列出来:

    1. USART_GetITStatus(USART1, USART_IT_RXNE)
    2. USART_ReceiveData(USART1)
      对于通过串口控制LED状态翻转的实现中,这些库函数格外重要。

    1.USART_GetITStatus(USARTx, USART_IT_RXNE)

    在这里插入图片描述在这里插入图片描述

    该函数可以用于获取中断信息,并返回1或者0.
    在这个功能的实现中,使用了USART_IT_RXNE这个状态标记位。

    2.USART_ReceiveData(USART1)

    在这里插入图片描述
    该函数可以将接收到的数据赋值给另外一个变量。

    Receive_Data = USART_ReceiveData(USART1);        //读取数据后,RXNE标志位自动清零;
    

    总结

    注意USB转TTL接口的接线问题,确保它正确接线。
    同时,各位读者还可以基于这篇博客的基础,自己外扩串口控制其他模块的功能。举一反三。


    写这篇博客主要还是想告诉自己戒骄戒躁,调试程序的时候需要耐心。
    展开全文
  • C 51单片机串口控制LED

    千次阅读 2021-10-24 22:12:37
    实验名称:串口控制LED和蜂鸣器 接线说明: 实验现象:下载程序后,由串口助手以HEX格式发送如下命令控制LED和蜂鸣器 D1指示灯亮发送:11 0D 0A D1指示灯灭发送:10 0D 0A 蜂鸣器响发送: 21 0D 0A ...
    /**************************************************************************************
    实验名称:串口控制LED和蜂鸣器
    接线说明:	
    实验现象:下载程序后,由串口助手以HEX格式发送如下命令控制LED和蜂鸣器
    			D1指示灯亮发送:11 0D 0A
    			D1指示灯灭发送:10 0D 0A
    			蜂鸣器响发送:	21 0D 0A
    			蜂鸣器停发送:	20 0D 0A
    注意事项:	串口助手要以HEX格式发送,并且波特率为9600																			  
    ***************************************************************************************/
    #include "public.h"
    #include "beep.h"
    #include "uart.h"
    
    //控制管脚定义
    sbit LED1=P2^0;
    
    //宏定义
    #define LED1_ON_CMD		0X11
    #define LED1_OFF_CMD	0X10
    
    #define BEEP_ON_CMD		0X21
    #define BEEP_OFF_CMD	0X20
    
    /*******************************************************************************
    * 函 数 名       : main
    * 函数功能		 : 主函数
    * 输    入       : 无
    * 输    出    	 : 无
    *******************************************************************************/
    void main()
    {	
    	u8 beep_flag=0;
    	
    	UART_Init();
    
    	while(1)
    	{
    		if(UART_RX_STA&0x8000)//判断串口是否接收完数据
    		{
    			UART_RX_STA=0;//清除标记,等待下次接收
    			switch(UART_RX_BUF[0])//判断第一个数据
    			{
    				case LED1_ON_CMD: LED1=0;break;
    			   	case LED1_OFF_CMD: LED1=1;break;
    				case BEEP_ON_CMD: beep_flag=1;break;
    				case BEEP_OFF_CMD: beep_flag=0;break;
    			}	
    		}
    		if(beep_flag)
    			beep_alarm(100,10);			
    	}
    }
    
    
    展开全文
  • stm32移植FreeRTOS操作系统,写了个例程,通过串口中断收发数据控制LED亮灭
  • STM32串口控制LED闪烁

    2011-07-29 14:44:28
    最基础的串口控制程序 初学者入门时值得研究
  • 串口接收字符串控制LED。通过STM32 串口1 接收字符串实现LED控制,程序通过判断\n识别字符串是否发送完成,所以串口调试助手上需勾选发送新行,发送LED1+ON点亮LED1,发送LED1+OFF关闭LED1
  • STM32F103ZE的串口接收 PWM的LED亮度控制 STemWinGUI
  • 程序使用STM32-PZ6806L开发板,实现USART3与PC端串口的超级终端通信,通过超级终端,用户从PC机键盘输入按键可以控制开发板的LED等状态改变。内含Keil5环境的项目源码和HyperTerminal超级终端软件。
  • 单片机:电脑通过串口控制LED

    千次阅读 2021-08-23 16:34:00
    电脑通过串口控制LED灯。 编程: #include<REG52.h> void delay(unsigned int xms) { unsigned int i,j; for(i=xms;i>0;i–) for(j=110;j>0;j–); } void UART_Init() { PCON &= 0x7F; //波特率不...

    题目概述:
    电脑通过串口控制LED灯。
    编程:
    #include<REG52.h>
    void delay(unsigned int xms)
    {
    unsigned int i,j;
    for(i=xms;i>0;i–)
    for(j=110;j>0;j–);
    }
    void UART_Init()
    {
    PCON &= 0x7F; //波特率不倍速
    SCON = 0x50; //8位数据,可变波特率
    TMOD &= 0x0F; //清除定时器1模式位
    TMOD |= 0x20; //设定定时器1为8位自动重装方式
    TL1 = 0xFD; //设定定时初值
    TH1 = 0xFD; //设定定时器重装值
    ET1 = 0; //禁止定时器1中断
    TR1 = 1; //启动定时器1
    }
    /*
    *串口发送一个字节数据
    *Byte要发送的一个字节数据
    *返回值无
    */
    void UART_SendByte(unsigned char Byte)
    {
    SBUF=Byte;
    while(TI==0);
    TI=0;
    }
    void main()
    {
    UART_Init();
    while(1)
    {

    }
    

    }
    void UART_Routine() interrupt 4
    {
    if(RI==1) //接受
    {
    P2=~SBUF;
    UART_SendByte(SBUF);//发回
    RI=0;
    }
    }

    展开全文
  • 【Arduino】串口控制LED灯PWM调光

    千次阅读 2020-12-31 10:10:01
    通过PWM技术实现串口控制LED灯光强弱。 电路连接 源代码及注释 #define Led 11 //定义Led引脚,输出PWM int LedLight=0; //Led灯光亮度 char now; //获取键盘输入 void setup() { pinMode(Led,OUTPUT); //定义LED...
  • 程序实现单片机通过串口向调试助手发送字节、全字、字符串、数组等; 通过调试助手向单片机发送指令(字符)控制LED
  • 串口时钟和 GPIO 时钟使能。 串口3是挂载在 APB1 下面的外设,, 对应着芯片引脚 PB10、PB11,所以使能函数为: RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE); //使能 GPIOB 时钟 RCC_APB1...
  • //接收串口发送过来的值 int led = 13;//13号引脚为Arduino板载的LED void setup() { Serial.begin(9600);//设置波特率 Serial.println("请输入你要发送的数据:");//提示字符 pinMode(led,OUTPUT);//设置led管脚...
  • 使用串口2控制led亮灭

    千次阅读 2021-01-14 14:03:33
    STM32F103ZET6 用串口控制LED灯的亮灭 1.串口定义 串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。 串行通信:占用I/O较少,速度上较慢点 并行通信:占用I/O较多,速度上快速 2....
  • 四、串口控制LED

    万次阅读 多人点赞 2016-09-23 12:49:25
    串口控制LED灯1.USART_GetFlagStatus(获取串口状态)2.USART_ReceiveData (串口接收函数)1.USART_GetFlagStatus:获取串口状态参数1:USARTX串口(如:USART1) 参数2:USART_FLAG_xxx USART_FLAG_TXE 发送 USART_FLAG_
  • 同时集成了流水灯模块,串口空闲的时候,LED动态流水,串口工作的时候,LED闪烁。打包的是整个FPGA Quartus II 工程,仿真脚本已经写好了,程序注释很到位,逻辑清晰明了,非常适合初学者用来作为第一个HelloWorld...
  • STM32通过串口控制LED闪烁或者呼吸效果

    千次阅读 多人点赞 2020-08-21 15:57:41
    STM32通过串口控制LED闪烁或者呼吸效果 目录STM32通过串口控制LED闪烁或者呼吸效果1、准备工作2、思路分析3、实际操作4、小结 1、准备工作 1.首先我们需要准备32的最小系统板或者开发板。 2.准备一个LED灯(如果使用...
  • 使用串口助手发送16进制数控制相应的led灯的亮灭
  • 实验1:串口控制LED灯 目的:根据教程学习了跑马灯和串口通信实验,,因之前在学校有自学过一点Unity3d软体基础使用,为了将这些融合在一起,就想做用unity3d做上位机程序,通过串口通信,控制LED灯亮和灭。 数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,822
精华内容 6,728
关键字:

串口控制led程序

友情链接: SliderOCX.zip