串口通信控制器怎么控制灯亮

四、串口控制LED灯 - CSDN博客
四、串口控制LED灯
串口控制LED灯
1.USART_GetFlagStatus(获取串口状态)
2.USART_ReceiveData (串口接收函数)
3.编写main函数
4.实验结果
1.USART_GetFlagStatus:获取串口状态
参数1:USARTX串口(如:USART1)
参数2:USART_FLAG_xxx
USART_FLAG_TXE
USART_FLAG_RXNE
USART_FLAG_IDLE
USART_FLAG_ORE
USART_FLAG_NE
USART_FLAG_FE
USART_FLAG_PE
USART_FLAG_TC
USART_FLAG_CTS
USART_FLAG_LBD
2.USART_ReceiveData 数据接收函数
参数:USARTX串口(如:USART1)
3.编写main.c
#include "stm32f10x.h"
#include "led.h"
#include "stm32f10x_rcc.h"
#include "misc.h"
#include "usart.h"
#include &stdio.h&
void Delay(uint32_t nCount){
for(i=0;i&nCi++);
char ReceivedData = NULL;
int main(){
LED_GPIO_Config();
USART1_Config();
while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)
ReceivedData = USART_ReceiveData(USART1);
printf("Positionen: %d \r\n", ReceivedData);
if (ReceivedData == '1'){
printf("LED1(ON)");
Delay(0xFFFFFF);
}else if(ReceivedData=='0'){
LED1(OFF);
Delay(0xFFFFFF);
printf("LED1(OFF)");
4.实验结果
发1 LED ON
发0 LED OFF
本文已收录于以下专栏:
相关文章推荐
1. NASM编译器介绍:
    1) Netwide Assembler,是目前唯一开源且免费的汇编器;
    2) 该汇编器只提供编译的功能,但不提供连接的功能,在Linux下编译器产生.o文...
最近在串口发送引脚上接LED指示发送或者接收状态,但是需求是希望连续发送或者接收字符过程中LED闪烁,而不是保持在一个常量或者常灭的状态。首先,把实际电路图和串口时序贴出来:  可以看出串口发送接收空...
USART---串口发送数据---完全解读
在很多应用程序中都需要用到pc机与外部设备如:嵌入式系统、传感器、开关设备等进行数据通讯。其中,最常用的接口就是RS-232串口和并口。SUN的CommAPI分别提供了对常用的RS232串行端口和IE...
在RTOS_TINY操作系统下实现以下目标:
有四个LED,使用AT89S52的4个引脚驱动它们分别以5Hz,8Hz,20Hz,32Hz的频率闪烁。设使用12MHz的晶振。用串口助手,通过发送 “T...
本例向你展示如何在Arduino或Genuino板从电脑接收消息。在接收到字母H时,就把LED打开。在接收到字母L时就关闭LED。
使用队列存储
为了省事我发送完直接从队列里面删除了
using System.IO;
using System.T
using Syste...
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)实验10 PC串口控制 LED_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
实验10 PC串口控制 LED
总评分4.2|
浏览量17277
用知识赚钱
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢查看: 496|回复: 0
单片机串口通信控制小灯亮灭
#include&reg51.h&#include &intrins.h&#define uint8 unsigned char#define uint16 unsigned int& & & & & & & & & & & & uint8 receive_led=0
void send(uint8 moshi) {&&SBUF=& & & & while(!TI);& & & & TI=0;
void main(){& & & &
& & & & P2 = 0& & & & & & & & & & & & & & & & TMOD = 0x20;& & & & & & & & & & & & TH1 = 0& & & & TL1 = 0& & & & & & & & & & & & & & & & TR1 = 1;& & & & & & & & & & & & & & & & & & & & EA = 1;& & & & & & & & & & & & & & & & & & & & SM0 = 0;& & & & SM1 = 1;& & & & & & & & & & & & & & & & & & & & REN = 1;& && &&&& & & & ES = 1;& & & & & & & & while(1)& & & & {& & & && & & & & && &P2 =_crol_(led,(receive_buffer-1));& & & && &send(receive_buffer);& & & & }& & & & & & & & & & & & }
void uart_int() interrupt 4{& & & & if(RI == 1)& & & & {& & & && && & & & RI = 0;& & & & receive_buffer = SBUF; & & & & }& & & & }
Powered by21ic官方微信-->
后使用快捷导航没有帐号?
请完成以下验证码
查看: 2282|回复: 12
串口通信指示灯
&&已结帖(0)
主题帖子积分
中级技术员, 积分 166, 距离下一级还需 134 积分
中级技术员, 积分 166, 距离下一级还需 134 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
中级技术员, 积分 166, 距离下一级还需 134 积分
中级技术员, 积分 166, 距离下一级还需 134 积分
我画了个FPGA的板子,串口通信是这如图所示,我的程序是单工的,一个板子发送,另外一个板子接收,可对于只发送的那个板子,正常不是应该只是发送的那个指示灯一闪一闪的么?可为什么接收那个脚的指示灯也亮了,而且是一直亮,很亮很亮,跟电源指示灯似的,正常我没有用到接收脚,只用了发送的脚,可接收的灯为什么会亮??
本帖子中包含更多资源
才可以下载或查看,没有帐号?
主题帖子积分
初级技术员, 积分 69, 距离下一级还需 31 积分
初级技术员, 积分 69, 距离下一级还需 31 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
初级技术员, 积分 69, 距离下一级还需 31 积分
初级技术员, 积分 69, 距离下一级还需 31 积分
把LED3反着接试试。。
主题帖子积分
主题帖子积分
专家等级:结帖率:97%打赏:9.18受赏:110.10
主题帖子积分
R2,R3的阻值有点小,一般470-2K的范围
21ic公开课,21ic网友共同的学习圈子!
主题帖子积分
中级技术员, 积分 109, 距离下一级还需 191 积分
中级技术员, 积分 109, 距离下一级还需 191 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
中级技术员, 积分 109, 距离下一级还需 191 积分
中级技术员, 积分 109, 距离下一级还需 191 积分
电路板上LED3接反了?
主题帖子积分
中级技术员, 积分 166, 距离下一级还需 134 积分
中级技术员, 积分 166, 距离下一级还需 134 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
中级技术员, 积分 166, 距离下一级还需 134 积分
中级技术员, 积分 166, 距离下一级还需 134 积分
zhouliang1229 发表于
电路板上LED3接反了?
主题帖子积分
中级技术员, 积分 166, 距离下一级还需 134 积分
中级技术员, 积分 166, 距离下一级还需 134 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
中级技术员, 积分 166, 距离下一级还需 134 积分
中级技术员, 积分 166, 距离下一级还需 134 积分
ningling_21 发表于
R2,R3的阻值有点小,一般470-2K的范围
可是,当我另外一块板子只做接收的时候,没有用到发送,发送的灯就没有亮诶
主题帖子积分
初级工程师, 积分 2951, 距离下一级还需 49 积分
初级工程师, 积分 2951, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:20%打赏:0.00受赏:8.00
主题帖子积分
初级工程师, 积分 2951, 距离下一级还需 49 积分
初级工程师, 积分 2951, 距离下一级还需 49 积分
yoonssica 发表于
可是,当我另外一块板子只做接收的时候,没有用到发送,发送的灯就没有亮诶 ...
查你的FPGA芯片问题。
主题帖子积分
中级技术员, 积分 166, 距离下一级还需 134 积分
中级技术员, 积分 166, 距离下一级还需 134 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
中级技术员, 积分 166, 距离下一级还需 134 积分
中级技术员, 积分 166, 距离下一级还需 134 积分
crazy2012 发表于
查你的FPGA芯片问题。
????什么意思呢亲?能劳烦您说详细些么?
主题帖子积分
高级技术员, 积分 632, 距离下一级还需 368 积分
高级技术员, 积分 632, 距离下一级还需 368 积分
主题帖子积分
专家等级:结帖率:33%
主题帖子积分
高级技术员, 积分 632, 距离下一级还需 368 积分
高级技术员, 积分 632, 距离下一级还需 368 积分
你让他同时收发试试。
Smart Anywhere 淘宝小店各种资料买一送二拍完就送& &
主题帖子积分
初级工程师, 积分 2951, 距离下一级还需 49 积分
初级工程师, 积分 2951, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:20%打赏:0.00受赏:8.00
主题帖子积分
初级工程师, 积分 2951, 距离下一级还需 49 积分
初级工程师, 积分 2951, 距离下一级还需 49 积分
yoonssica 发表于
????什么意思呢亲?能劳烦您说详细些么?
意思就是说排除法。
主题帖子积分
中级技术员, 积分 166, 距离下一级还需 134 积分
中级技术员, 积分 166, 距离下一级还需 134 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
中级技术员, 积分 166, 距离下一级还需 134 积分
中级技术员, 积分 166, 距离下一级还需 134 积分
zjh6607476 发表于
你让他同时收发试试。
同一个串口既收又发么????
主题帖子积分
中级技术员, 积分 166, 距离下一级还需 134 积分
中级技术员, 积分 166, 距离下一级还需 134 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
中级技术员, 积分 166, 距离下一级还需 134 积分
中级技术员, 积分 166, 距离下一级还需 134 积分
crazy2012 发表于
意思就是说排除法。
。。。。。这。。。
主题帖子积分
中级技术员, 积分 114, 距离下一级还需 186 积分
中级技术员, 积分 114, 距离下一级还需 186 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
中级技术员, 积分 114, 距离下一级还需 186 积分
中级技术员, 积分 114, 距离下一级还需 186 积分
看下芯片资料 接收脚是否默认为低电平 不工作的时候一直是低电平 所以就一直亮
技术高手奖章
人才类勋章
时间类勋章
技术新星奖章
人才类勋章
坚毅之洋流
发帖类勋章
时间类勋章
核心会员奖章
等级类勋章
技术领袖奖章
人才类勋章
时间类勋章
时间类勋章
涓涓之细流
发帖类勋章
甘甜之泉水
发帖类勋章
时间类勋章
热门推荐 /3新手求助帖:串口控制LED灯的问题 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
新手求助帖:串口控制LED灯的问题
12:11:56  
刚接触串口通信,遇到一个问题,希望大家解答
串口控制LED灯的程序:
#include&reg52.h&main(){&&TMOD=0x20;&&TH1=0xFD;&&TL1=0xFD;&&TR1=1;&&EA=1;&&ES=1;&&SCON=0x50;& && &
&&while(1)&&{&&if(flag==1)& & {& && &&&ES=0;& && &&&flag=0;& && &&&SBUF=& && &&&while(!TI);& && &&&TI=0;& && &&&ES=1;& && &&&}&&}} void ser() interrupt 4{&&RI=0;&&P0 = SBUF;&&temp = SBUF;&&flag=1;}&&理论来说程序的发送和接收的数据是一致的。
&&我用串口调试助手这软件,发现发送的数据为什么和PC机接收的数据不一样的呢?如图, 我的发送框中分别是:01 55 aa ff 00,为什么PC机中接收的数据是:81,F5,8A,FF,80呢?
111112.jpg (25.8 KB, 下载次数: 5)
11:56 上传
&&&&当发送aa和ff的确可以全亮或者全灭。并且低四位的LED灯能准确控制,就是当发送01到0f都能正确显示。但当发生的数据的高四位不为0时,LED灯就不能准确显示了。比如当我发送是1f时,理论来说,LED灯应正确显示,就是第五、第六、第七位的灯会亮。而实际上它显示是:。
&&再比如我发送是3f,而实际上LED灯显示的是.就是只有最高位亮,其他都是灭的。
&&为什么是这样子的呢?望解答!
高级工程师
14:02:29  
你用的是什么单片机,还有实际波特率是否和要求一致
15:23:55  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
lovezjf234 发表于
你用的是什么单片机,还有实际波特率是否和要求一致
&&我用的是STC89C52芯片,波特率没错。还有我表达有误,应该是:比如当我发送是1f时,理论来说,LED灯应正确显示,就是第六、第七位、第八的灯会亮。而实际上它显示是:。
&&你觉得哪里有错呢?
21:04:20  
那是由于你用串口助手的时候没选 波特率,不要看上边是9600就不选 一定要再选一次,一定可以的
23:28:00  
&&TL1=0xFD
改为TH1=OxF9;
& && & TL1=0xF9;
Powered by
供应链服务
商务及广告合作
Jeffery Guo
关注我们的微信
供应链服务 PCB/IC/PCBA
下载发烧友APP
版权所有 (C) 深圳华强聚丰电子科技有限公司}

我要回帖

更多关于 按键控制led灯亮灭 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信