OpenEdv-开源电子网

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

32怎么用串口控制io口

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2018-9-23
在线时间
3 小时
发表于 2018-9-23 17:20:22 | 显示全部楼层 |阅读模式
1金钱
想问下32f1怎么用上位机发送数据到单片机然后根据发送的数据执行动作啊。。数组得话怎么建立啊。。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2018-4-6
在线时间
31 小时
发表于 2018-9-24 08:25:48 | 显示全部楼层
参考正点原子的程序,大概就是
来第一个数据,判断是不是包头,设置的特定数据(如果需要的话)

然后接下来的数据都放数组里,来一个数据 i++ 一下,

然后在发到特定数据或者数组溢出的话,接受标志置位,接受完成
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2018-9-24 08:47:10 | 显示全部楼层
首先楼主不妨按照正点原子的例程学会使用串口通讯。学完之后自然就知道数组是怎么建立的了,楼主也就不应该会问这个问题了。

如果想要根据串口接收到的数据使单片机进行某个操作的话,最基本的是,可以判断接收到的第一个字节的数据,如果为'0',执行任务1;如果为'1',执行任务2,等等,可以非常方便地使用switch语句来实现。
十六进制带我飞。
回复

使用道具 举报

3

主题

102

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2018-9-7
在线时间
22 小时
发表于 2018-9-24 11:20:57 | 显示全部楼层
楼主先去学一下串口通信吧。学完之后就一切都明白了
回复

使用道具 举报

26

主题

355

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-4-1
在线时间
432 小时
发表于 2018-9-25 08:30:18 | 显示全部楼层
自己定串口协议就好了
回复

使用道具 举报

1

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-9-11
在线时间
6 小时
发表于 2018-9-25 08:37:48 | 显示全部楼层
自己定串口协议就好了
回复

使用道具 举报

17

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2016-9-3
在线时间
158 小时
发表于 2018-9-25 08:54:10 | 显示全部楼层
判断接收的数据就好了,当接收的数据是你想要的时候,你想干嘛就干嘛
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-9-25 08:55:48 | 显示全部楼层
人之间交流需要通过语言,机器间交流无非就是换了一种语言。
找一个串口程序,结合电路图、手册教程等将代码看懂即可。
上位机——串口助手一类的软件,当然你可以自己做一个上位机
串口接收时有一个专门接收数据的数组,直接用它就行了。
比方说上位机发来 0x51 0x01 0xfd
51是祯头,fd是祯尾,01是数据,表示io口置高。
编程例:
if(resdata[0] == 0x51 && resdata[2] == 0xfd)
{
   switch(resdata[1])
   {
       case 0x00:led_off();
       case 0x01:led_on();
   }
}
简单来说就是这么回事,其实还有校验位,严谨一点的还有数据长度位等等等.......这些都可以自己拟定,只要互相沟通的单片机使用的是“同一种语言就可以了”
猪猪熊呢?
回复

使用道具 举报

3

主题

288

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2018-8-28
在线时间
130 小时
发表于 2018-9-25 09:53:14 | 显示全部楼层
首先你可以先看懂正点原子的串口例程,里面功能是上位机发送到单片机后,将上位机发送的数据通过串口发送回上位机。(回显)。你可以根据回显的内容,将接收数组的内容可以按if(BUF[0]==0xXX)、这样上位机发送的数据进行判断。然后下面是执行。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 01:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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