精华内容
下载资源
问答
  • 使用串口助手发送16进制数控制相应的led灯的
  • 串口控制LED灭.rar

    2019-07-03 09:03:01
    STM32F103,串口控制LED灯,串口发送1、2,灯或灭。
  • CC2530 串口发送指令控制LED灯.r
  • 利用串口1的中断方式控制LED
  • 单片机串口通信控制LED灭,串口输入数字1,灯,输入其他,灯灭,里面有相关安装软件,可供下载,不会操作的,里面附有经典文章一篇,看完秒懂。
  • STM32串口通信例程,适合新手学习串口通信。。。。。。。。。。。。。。。。。。。。。。。。。。。
  • 程序实现单片机通过串口向调试助手发送字节、全字、字符串、数组等; 通过调试助手向单片机发送指令(字符)控制LED
  • 通过串口控制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接口的接线问题,确保它正确接线。
    同时,各位读者还可以基于这篇博客的基础,自己外扩串口控制其他模块的功能。举一反三。


    写这篇博客主要还是想告诉自己戒骄戒躁,调试程序的时候需要耐心。
    展开全文
  • /*注意设置波特率为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;       //清除发送完成标志位

    }

    展开全文
  • STM32-通过串口收发控制LED亮灭(使用USART1 查询法)

    万次阅读 多人点赞 2020-06-15 11:12:06
    实现的功能 1.电脑发送‘ON’ 如果已是亮灯状态则返回‘the LED has been ON’ 如果为熄灭状态则点亮LED并返回‘the LED is ON now’ 2.电脑发送‘OFF’ ...如果已是熄灭状态则返回‘the LED has ...LED串口...

    实现的功能

           1.电脑发送‘ON’

    • 如果已是亮灯状态则返回‘the LED has been ON’

    • 如果为熄灭状态则点亮LED并返回‘the LED is ON now’

    2.电脑发送‘OFF’

    • 如果已是熄灭状态则返回‘the LED has been OFF’
    • 如果为亮灯状态则关闭LED并返回‘the LED is OFF now’

     

     

    最终效果

     

     

    使用的芯片为STM32F103C8T6,LED连接在GPIOC的第13号引脚

     

    LED和串口的初始化

    #include <stm32f10x.h>
    #include <stm32f10x_usart.h>
    #include <stm32f10x_gpio.h>
    #include <stm32f10x_rcc.h>
    #include <misc.h>
    #include <string.h>
    #include <stdio.h>
    
    //LED开关
    #define LED_ON GPIO_ResetBits(GPIOC,GPIO_Pin_13);
    #define LED_OFF GPIO_SetBits(GPIOC,GPIO_Pin_13);
    
    #define MAX 100 //最长的接收和发送数据大小
    u8 RxBuffer[MAX];   //接收寄存数组
    u8 TxBuffer[MAX];   //发送寄存数组
    
    int RxCount=0;     //接收发送字节数
    int TxCount=0;
    
    
    //LED的GPIO初始化
    void GPIO_LED_init()
    {
    	GPIO_InitTypeDef GPIO_InitStructure;
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
    	
    	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;
    	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    	GPIO_Init(GPIOC,&GPIO_InitStructure);
    	
    	GPIO_SetBits(GPIOC,GPIO_Pin_13);            //默认关闭LED
    }
    
    //串口GPIO的初始化 GPIOA_PIN_9为TX,GPIOA_PIN_10为RX
    void GPIO_USART_int()
    {
    	GPIO_InitTypeDef GPIO_InitStructure;
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
    	
    	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;    //TX为复用推挽输出模式
    	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
    	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    	GPIO_Init(GPIOA,&GPIO_InitStructure);
    	
    	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;   //RX为输入悬空模式
    	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
    	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    	GPIO_Init(GPIOA,&GPIO_InitStructure);
    }
    
    void USART_init()
    {
    	USART_InitTypeDef USART_InitStructure;
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
    	
    	USART_InitStructure.USART_BaudRate=115200;          //波特率为115200
    	USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
    	USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
    	USART_InitStructure.USART_Parity=USART_Parity_No;
    	USART_InitStructure.USART_StopBits=USART_StopBits_1;
    	USART_InitStructure.USART_WordLength=USART_WordLength_8b;
    	USART_Cmd(USART1,ENABLE);
    	USART_Init(USART1,&USART_InitStructure);
    }

    串口收发函数

    //查询法发送一字节
     char USART1_SendByte(u8 data)
    {
        USART_SendData(USART1,data);   //发送数据
    	while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET)  //如果发送失败返回0
    	{
    			cnt++;
    			if(cnt>12000)
    			return 0;
    	}
       return 1;
    }
    
    //查询法接收一字符
    
    u8 USART1_GetByte()
    {
    	while(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)==RESET){}  //等待接收完成
    		return (USART_ReceiveData(USART1));
    }
    
    
    u8 ReceiveData()
    {
    	vu32 cnt=0;
    	while(1)
    	{
    		RxBuffer[RxCount++]=USART1_GetByte();
    		if(strstr((char *)RxBuffer,"ON")!=NULL)    //对比串口接收到的字符串,为ON就返回1
    		{
    			RxCount=0;
    			return 1;
    		}
    		else 
    			if(strstr((char *)RxBuffer,"OFF")!=NULL) //对比窗口接收到的字符串,为OFF就返回2
    			{
    				RxCount=0;
    				return 2;
    			}
    		else 
    			if(RxCount>3)        //如果未接收到ON或OFF则重新接收并返回0
    			{
    				RxCount=0;
    				return 0;
    			}				
    		
    	}
    }
    
    void SendString(u8 *state)     //用来向串口调试助手发送字符串
    {
    	while(*state!='\0')
    	USART1_SendByte(*state++);
    }
    
    void EmptyRxBuffer(u8 len)      //清空接收寄存数组
    {
    	u8 i;
    	for(i=0;i<len;i++)
    	RxBuffer[i]=0;
    }

    主函数,通过串口收到的指令控制LED并向调试助手返回状态

    int main(void)
    {
    
    	GPIO_LED_init();   //LED有关的GPIO设置
    	GPIO_USART_int();  //串口有关的GPIO设置
    	USART_init();      //串口设置
    	while(1)
    	{
    		SendString((u8 *)("Welcome to my stm32 project\n"));
    		switch(ReceiveData())  //根据接收到的字符串,执行操作
    		{
    			case 1:
    				if((GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13))==RESET)
                     //如果LED已经被点亮,则提示LED已是亮的
     				SendString((u8 *)("the LED has been ON\n"));
    			  else 
    				{
    					LED_ON;
                        //否则点亮LED并提示
    					SendString((u8 *)("the LED is ON now\n"));
    				}
    			break;
    			case 2:
    				if((GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13))!=RESET)
                    //如LED已是灭灯状态,则提示LED已灭
    					SendString((u8 *)("the LED has been OFF\n"));
    				else 
    				{
    					LED_OFF;
                        //否则关闭LED,并返回状态
    					SendString((u8 *)("the LED is OFF now\n"));
    				}
    			break;
    			case 0:
    				SendString((u8 *)("Command erro!\n"));
    			  break;			
    		}
    	EmptyRxBuffer(MAX);
    	}
    }
    
    
    
    

     

    展开全文
  • 已经完全实现用汉字指令控制LED,并且将汉字指令打印到串口调试助手上 串口调试助手是XCOM2.0 代码是在正点原子“串口实验”基础上进行的改动。 源代码实现的功能:单片机通过串口和PC端进行通话,单片机收到PC端发...

    已经完全实现用汉字指令控制LED,并且将汉字指令打印到串口调试助手上

    串口调试助手是XCOM2.0
    代码是在正点原子“串口实验”基础上进行的改动。

    源代码实现的功能:单片机通过串口和PC端进行通话,单片机收到PC端发过来的字符串后,原原本本的返回给PC端。

    所以关于串口的配置,以及如何实现单片机将字符串原原本本的返回给PC端就不怎么说了,因为正点原子原视频讲的很详细,主要是定义了一个协议,而这个协议很重要(不过我还是不太理解,会拿过来用就好了)。

    第一个过程中(没有用源代码收发协议),只是通过检测发送的十六进制0X00和0XFF分别控制LED的亮灭,如下:

    下面的是usart.c程序中的中断函数

    // An highlighted block
    void USART1_IRQHandler(void)                	//串口1中断服务程序
    {
    	uint8_t Res = 0;
    	if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
    	{
    		Res =USART_ReceiveData(USART1);	//读取接收到的数据
    		printf("发送的消息是:%d\r\n",Res);
    		if(Res==0XFF)
    			{
    				GPIO_SetBits(GPIOC,GPIO_Pin_13);
    				delay_ms(1000);
    			}
    		if(Res==0X00)
    		{
    			GPIO_ResetBits(GPIOC,GPIO_Pin_13);
                delay_ms(1000);
    		}		
        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待数据发送完		
    	}	
    }
    
    

    下面的是主函数,主函数中除了有关的声明外并没有执行任何操作:

    // An highlighted block
    int main(void)
    {	
    	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
    	uart_init(115200);
    	delay_init();
    	LED_Init();	
    	while(1)
    	{
    		;//等待
    	}	 	
    }
    

    功能实现:
    在这里插入图片描述
    可以实现控制LED的亮灭,但是有一个问题,串口调试助手除了显示发送的0X00和0XFF以外,还会自动跟上一个0X0D(也就是13)结尾。

    0XOD虽然我懵懵懂懂知道它是一个判断数据结束的标志位,但是我一直想怎么才能让串口调试助手不显示最后的这个判断位,而只是显示有效数值。

    一遍又一遍的尝试,我尝试把这个程序和正点原子的源程序结合一下。

    如图:
    在这里插入图片描述
    主函数一点没有改动,结果怎么样那?

    我用调试助手调试时,

    ①勾选上“以16进制发送”时,单片机能够根据指令做出相应的动作,但是串口却不显示我发送的命令。

    ②当我不勾选“以16进制发送”时,发送什么能原原本本的显示什么,但是单片机不做出相应的动作,不执行命令。

    我愁啊,但是最后很幸运,看见了一位大佬的博客,一击致命。

    uasrt.c文件没有改动(也就是说原子哥定义的收发协议没有改动),只是把单片机的执行命令函数放在了主函数中,而且用的是非常巧妙的方法:

    // An highlighted block
    if(!(strcmp(USART_RX_BUF,"打开"))) 
    			{
    			    LED2=0;//PC13
    			}
          if(!(strcmp(USART_RX_BUF,"关闭"))) 
    			{
    			    LED2=1;
    			}
    

    用的strcmp函数,和我们要发送的数据进行判断,判断结果肯定是想让两者相等
    自己仔细想一下,其实很对,我们最终是怎么把数据返回给PC端的那?

    是通过自己将信息先存放在 USART_RX_BUF[]数组中,然后再逐个字节的返回。
    效果:
    在这里插入图片描述
    在这里插入图片描述
    至于单片机执行命令的视频就不发了,太难拍视频了。。。

    希望对大家有帮助。

    串口 一个很重要的应用,我要了解它的东西还有很多
    加油。

    展开全文
  • //接收串口发送过来的值 int led = 13;//13号引脚为Arduino板载的LED void setup() { Serial.begin(9600);//设置波特率 Serial.println("请输入你要发送的数据:");//提示字符 pinMode(led,OUTPUT);//设置led管脚...
  • STM32F103通过串口USART控制LED亮

    千次阅读 2021-03-23 21:43:35
    这款开发板的其中一个LED引脚PB5,看下图 #include <stm32f10x.h> #include <stm32f10x_usart.h> #include <stm32f10x_gpio.h> #include <stm32f10x_rcc.h> #include <misc.h> #...
  • STM32通过串口发送接收PC端消息,并控制LED灯的

    万次阅读 多人点赞 2020-10-17 11:39:09
    STM32F407ZE 通过串口发送接收PC端串口助手消息,并控制LED灯的灭 具体代码解析如下: ustart.h部分 #ifndef USTART_H #define USTART_H #include <stm32f4xx.h> #include <stm32f4xx_usart.h> #...
  • 串口控制FPGA Led亮

    2015-01-08 23:31:18
    http://blog.csdn.net/mybelief321/article/details/42532247 自己用C#写的通过串口控制FPGA的LED灯亮灭,数码管显示LED亮的个数,FPGA的程序也是自己看书编写修改的,分享出来吧,但愿对你有用
  • 单片机串口发送指令控制LED
  • CC2530基础实验代码教程-CC2530 串口发送指令控制LED灯.rar
  • CC2530串口控制LED亮

    千次阅读 2020-07-11 21:21:17
  • STM32——串口发送字符、字符串 + printf 的重定向](https://blog.csdn.net/weixin_46105931/article/details/120385156?spm=1001.2014.3001.5501)4. 配置中断 NVIC 抢占优先级在 misc.h 头文件中查找相关函数函数...
  • STM32串口控制LED

    2018-06-28 09:10:34
    本程序是基于STM32F103ZET6的一个实验程序。可通过发送指令控制LED灯,可以开启和关闭LED灯,以及蜂鸣器等外设
  • 串口接收字符串控制LED。通过STM32 串口1 接收字符串实现LED控制,程序通过判断\n识别字符串是否发送完成,所以串口调试助手上需勾选发送新行,发送LED1+ON点亮LED1发送LED1+OFF关闭LED1
  • 初始化串口函数,能够实现串口的数据收发;初始化GPIO函数,能够实现IO口的数据收发,从而实现LED灯的
  • 使用串口2控制led亮

    千次阅读 2021-01-14 14:03:33
    STM32F103ZET6 用串口控制LED灯的1.串口定义 串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。 串行通信:占用I/O较少,速度上较慢点 并行通信:占用I/O较多,速度上快速 2....
  • 串口3是挂载在 APB1 下面的外设,, 对应着芯片引脚 PB10、PB11,所以使能函数为: RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE); //使能 GPIOB 时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART
  • 2)收到 PC 发送过来的数据,通过数据内容分析控制 LED   注:嵌入式开发中,当程序能跑起来后,串口是第一个要跑起来的外设,所有的工作状态,交互信息都会从串口输出。用的USB转串口芯片是世界上最好的串口芯片 ...
  • module chuankou_jieshou(clk,rstn,RX_DATA,Bps_caiji,gm_chong,RX_En,count_End,RX_End,RX_... //输入的是串口总线的数据input Bps_caiji ;//波特率采集定时信号input gm_chong ;//电平检测到了串口总线上由高变...
  • 首先编写串口的初始化函数。 void UsartInit() { SM0=0; SM1=1; //采用模式1 REN=1; //让串口中断使能 TMOD|=0X20; //设置计数器的工作方式 PCON|=0x80; //最高位置1表示波特率加倍 TH1=0...
  • 通过延时函数,中断函数,9600波特率,switch ——case等函数完成程序 使用串口助手发送16进制数控制相应的led灯的
  • 1发送什么就接收什么 /* 工程创建MCU选取,Atmel 89C55 单片机:STC12C5A60S2 晶振:12M 功能:串口的应用 波特率:4800 8 无 1 无 */ #include // 可以使用通用的头文件 //串口中断初始化程序 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,617
精华内容 1,446
关键字:

串口发送1控制led亮

友情链接: 7491293.rar