[STM32F4] STM32 串口通信

[复制链接]
6420|68
youtome 发表于 2018-7-13 17:23 | 显示全部楼层
没有看懂,楼主的程序实现的功能有问题吗?
51xlf 发表于 2018-7-13 17:23 | 显示全部楼层
是接受不到数据吗?
houjiakai 发表于 2018-7-13 17:24 | 显示全部楼层
stm32接收和PC处理是一个流程的。
i1mcu 发表于 2018-7-13 17:24 | 显示全部楼层
这个不是开头和结尾都定义了吗
lzbf 发表于 2018-7-13 17:24 | 显示全部楼层
串口的接受问题解决不了。
pmp 发表于 2018-7-13 17:24 | 显示全部楼层
woshixiaobai 发表于 2018-7-13 17:00
我可能说的不太对,是这样的:我刚接触不知道这是啥意思,用C语言写   设定一个帧头帧尾,数据01表示接口 ...

是你定义的数据有问题吗
1988020566 发表于 2018-7-13 17:24 | 显示全部楼层
是通信协议有问题呢还是串口有问题呢
mmbs 发表于 2018-7-13 17:24 | 显示全部楼层
最简单的就是使用数组移位解决。

评论

望指教!是我不明白该如何下手!  发表于 2018-7-18 14:29
updownq 发表于 2018-7-13 17:24 | 显示全部楼层
是还要返回AA 78 01 06 55吗?
cemaj 发表于 2018-7-13 17:24 | 显示全部楼层
把数据保存到数组,然后对应判断。

评论

可以再说的细点吗? 蟹蟹  发表于 2018-7-18 14:31
 楼主| woshixiaobai 发表于 2018-7-13 17:47 | 显示全部楼层
youtome 发表于 2018-7-13 17:23
没有看懂,楼主的程序实现的功能有问题吗?

是,我用C语言实现不了!
 楼主| woshixiaobai 发表于 2018-7-13 17:49 | 显示全部楼层
51xlf 发表于 2018-7-13 17:23
是接受不到数据吗?

我程序实现的不对!
 楼主| woshixiaobai 发表于 2018-7-13 17:50 | 显示全部楼层
houjiakai 发表于 2018-7-13 17:24
stm32接收和PC处理是一个流程的。


 楼主| woshixiaobai 发表于 2018-7-13 17:51 | 显示全部楼层
i1mcu 发表于 2018-7-13 17:24
这个不是开头和结尾都定义了吗

嗯嗯,问题描述:
设定一个帧头、数据IO口标志、IO状态标志、帧尾,
数据帧结构:0XAA  0X00(第一个)  0X00(第二个)  0X55
数据IO口标志(第一个):
00表示接口LED灯,
01表示STM32F407IZ的引脚PF1,
02表示PF2,
03表示PF3,
IO状态标志(第二个):一个数据字节表示IO的状态是否良好。
我向上位机发送数据01的时候查看LED灯的状态。02的时候观察PF1的IO口状态。03的时候观察PF2的IO口状态。04的时候观察PF3的IO口状态。


是我现在解决不了这个问题,望指教
 楼主| woshixiaobai 发表于 2018-7-13 17:52 | 显示全部楼层
pmp 发表于 2018-7-13 17:24
是你定义的数据有问题吗

是我不会用C语言解决
 楼主| woshixiaobai 发表于 2018-7-13 17:53 | 显示全部楼层
1988020566 发表于 2018-7-13 17:24
是通信协议有问题呢还是串口有问题呢

都没问题,是我解决不了,刚接触望给点建议!
ningling_21 发表于 2018-7-13 19:02 | 显示全部楼层
woshixiaobai 发表于 2018-7-13 17:53
都没问题,是我解决不了,刚接触望给点建议!

假如要获取PF1管脚的状态,可以读取寄存器的值,然后赋值给一个变量

再把这个变量的值返回到上位机即可
ningling_21 发表于 2018-7-13 19:02 | 显示全部楼层
woshixiaobai 发表于 2018-7-13 17:52
是我不会用C语言解决

C语言会不会呢
877049204 发表于 2018-7-14 10:32 | 显示全部楼层
sky.sun.zz 发表于 2018-7-13 16:39
貌似没有stm32f40的片子呀!

有,比如STM32F407
henangongda123 发表于 2018-7-14 10:34 | 显示全部楼层
很简单的一个通信协议,楼上有说2个55怎么办,这个很好规避,可以用字节数(数组长度)来实现,判断收到的数据是不是5个就行了;实现整个功能,需要用单片机的UART接收中断功能,在中断处理函数里面先对收到的数据校验,是不是起始为0xAA,结束为0x55,是的话就执行你想要的动作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部