OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6582|回复: 9

菜鸟求助,串口发送数字1控制LED0亮,发送数字2控制LED1亮该怎样写代码?

[复制链接]

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
139
金钱
139
注册时间
2015-6-13
在线时间
12 小时
发表于 2015-6-13 12:06:53 | 显示全部楼层 |阅读模式
5金钱
向开发板发送1或者0都是默认0D 0A结束,该怎样读取DR内所发送的数字的值呢

最佳答案

查看完整内容[请看2#楼]

看我们开发板配套的串口实验,详细讲解了怎么读取串口数据的
永远年轻,永远追求梦想!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-6-13 12:06:54 | 显示全部楼层
看我们开发板配套的串口实验,详细讲解了怎么读取串口数据的
开往春天的手扶拖拉机
回复

使用道具 举报

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
139
金钱
139
注册时间
2015-6-13
在线时间
12 小时
 楼主| 发表于 2015-6-13 16:35:04 | 显示全部楼层
回复【2楼】zuozhongkai:
---------------------------------
搞定,谢谢啦
永远年轻,永远追求梦想!
回复

使用道具 举报

11

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2015-7-30
在线时间
50 小时
发表于 2015-8-6 17:35:47 | 显示全部楼层
回复【3楼】Man Dsan:
---------------------------------
我刚开始学,可以发一份给我吗?谢谢
回复

使用道具 举报

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
139
金钱
139
注册时间
2015-6-13
在线时间
12 小时
 楼主| 发表于 2015-8-11 13:04:46 | 显示全部楼层
串口助手发送1,LED0状态翻转,发送2,LED1状态翻转

ALIENTEK MINISTM32 实验3 串口实验.rar

1.35 MB, 下载次数: 1155

永远年轻,永远追求梦想!
回复

使用道具 举报

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
139
金钱
139
注册时间
2015-6-13
在线时间
12 小时
 楼主| 发表于 2015-8-11 13:04:59 | 显示全部楼层
回复【4楼】小鑫好菜:
---------------------------------
看四楼
永远年轻,永远追求梦想!
回复

使用道具 举报

11

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2015-7-30
在线时间
50 小时
发表于 2015-8-12 09:37:12 | 显示全部楼层
回复【6楼】Man Dsan:
---------------------------------
3Q
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-8-24
在线时间
0 小时
发表于 2015-8-25 17:43:23 | 显示全部楼层
回复【5楼】Man Dsan:
---------------------------------
#if EN_USART1_RX   //??????????????
void USART1_IRQHandler(void)                 //????1????·??????ò
{
u8 Res;
#ifdef OS_TICKS_PER_SEC   //?????±?????????¨????,???÷??????ucosII??.
OSIntEnter();    
#endif
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //????????(????????????±?????0x0d 0x0a?á??)
{
Res =USART_ReceiveData(USART1);//(USART1->DR); //????????????????

if((USART_RX_STA&0x8000)==0)//???????ê??
{
if(USART_RX_STA&0x4000)//????????0x0d
{
if(Res!=0x0a)USART_RX_STA=0;//?????í?ó,????????
else USART_RX_STA|=0x8000; //?????ê???? 
}
else //????????0X0D
{
if(Res==0x0d)USART_RX_STA|=0x4000;
else
{
USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
USART_RX_STA++;
if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//?????????í?ó,????????????   
}  
}
}     
     } 
#ifdef OS_TICKS_PER_SEC   //?????±?????????¨????,???÷??????ucosII??.
OSIntExit();    
#endif

#endif

上面的程序有点看不懂,能解释一下呗,谢谢。
回复

使用道具 举报

16

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
201
金钱
201
注册时间
2014-9-23
在线时间
15 小时
发表于 2015-9-8 16:03:20 | 显示全部楼层
去了解下modbus-rtu协议把   工业控制经常遇到!
回复

使用道具 举报

11

主题

60

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2018-3-26
在线时间
107 小时
发表于 2018-9-28 17:28:53 | 显示全部楼层
Res=USART_RX_BUF[0]; 为什么取USART_RX_BUF[0]给res。 if(Res==49)  为什么 1对应的49?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 05:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表