网站首页 > 技术文章 正文
一、树莓派通信
1、硬件连线准备
树莓派4B、杜邦线、TTL转USB(只是验证树莓派功能,与STM32通信只需要杜邦线)
树莓派 RX 与TTL-USB TX相连接 树莓派TX与TTL-USB RX相连接
2、安装Serial和打开树莓派串口
2.1安装Serial
输入 sudo apt-get install serial
2.2打开树莓派串口
终端输入sudo raspi-config打开界面设置
sudo raspi-config
Interfacing Options→serial→否→是
输入ls -l /dev查看设备
ls -l /dev
2.3修改串口映射关系
输入sudo nano /boot/config.txt
sudo nano /boot/config.txt
末行添加 dtoverlay=pi3-miniuart-bit
输入ls -l /dev查看设备
3、树莓派代码
Xshell7和MobaXterm
uart.py代码如下
完整代码可进群免费领取!
4、上位机
我用的是正点原子的XCOM2.1 (这个官网都有免费的自己去下一下)
5、运行uart.py代码进行测试
5.1 树莓派发送,上位机接收
运行代码
测试结果
树莓派发送 a=ser.write(b'x09')
上位机接收:x09 (16进制不显示)
5.2上位机发送,树莓派接收
上位机发送0x01
树莓派接收数据并反馈数据
if res == b'\x01\r\n': #如果接受到 \x01\r\n (注意:树莓派接受数据和发送数据格式请严格要求)
ser.write(b'\x05') #树莓派发送 \x05 上位机接受(16进制显示)
二、STM32通信
芯片是RT1064 板子是学习版,都是在智能车比赛 逐飞科技 买的(实验室拿学弟的)。
6、配置串口
配置好后,发送是 uart_putchar(USART_1,0x01); //串口发送函数
接受是 uart_data这个变量,不要用库函数的接收函数,用了,程序会卡住,因为等待接收当然会卡住。
完整代码可进群免费领取!
7、测试STM32通信
7.1 STM32发送数据,上位机接收数据
STM32发送0x01 ,上位机一直接收。
7.2 上位机发送数据,STM32接收数据
上位机发送0x09,STM32接收到并发送0x15.
三、树莓派与STM32通信
最后其实就把STM32与树莓派用杜邦线连接就行,不用TTL-USB接口。
8、树莓派与STM32通信测试
按键模拟发送信号,STM32向树莓派发送数据,树莓派接收到数据后,向STM32发送命令控制小车电机转动。
按键按下(STM32发送‘0x01')→树莓派接收’\x01',发送‘\x05'→STM32接收到’0x05' 控制小车电机转动。(注意:树莓派与STM32的收发数据格式与上位机不同,最好自己动手实验)四个按键模拟4种信号(前后左右)每个信号控制一个轮子转动。
完整代码可进群免费领取!!!
嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击下方链接,0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!
点击这里找小助理0元领取:扫码进群领资料
猜你喜欢
- 2024-10-12 STM32单片机-多串口printf()问题与ASCII码解析
- 2024-10-12 stm32F0 串口的几个特殊功能 stm32f1串口引脚
- 2024-10-12 STM32串口发送用哪个中断? stm32f4串口发送数据
- 2024-10-12 STM32F103编程学习——USB虚拟串口篇
- 2024-10-12 STM32F4入坑日记——串口发送数据(非中断)
- 2024-10-12 STM32 HAL库串口中断发送过程 stm32f4串口中断
- 2024-10-12 在货物监控设备研发时,STM32串口第一个字节丢失解怎么解决?
- 2024-10-12 STM32单片机采用环形缓冲区实现串口中断数据接收管理
- 2024-10-12 基于STM32的串口与DMA的完美组合(上)
- 2024-10-12 STM32下载程序新思路--使用串口下载STM32程序
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)