用过RPi.GPIO 与 Writing Pi 但是他们都只能设置GPIO的高低电平啊
我需要用GPIO发送一些指令给蓝牙模块让蓝牙控制远端的从模块
看了几篇貌似都是把系统的ttyAMA0 (pin 14、15)用来做串口的输入输出
有没有方法用其他IO口也可以实现呢?
我需要用GPIO发送一些指令给蓝牙模块让蓝牙控制远端的从模块
看了几篇貌似都是把系统的ttyAMA0 (pin 14、15)用来做串口的输入输出
有没有方法用其他IO口也可以实现呢?
|
imydouJul 8, 2015
1
貌似没有,所有类库都是通过操作文件系统实现高低电平
|
|
chouryJul 8, 2015
4
有硬件的串口干嘛要软件实现呢,用GPIO实现的话你自己设置高低电平然后根据波特率计算延时啊
|
|
hardwareJul 8, 2015
5
感觉不如FT232转一下咯
|
|
6
|
|
pathletboyJul 8, 2015
7
要用到系统中断的,软串口得另外搞驱动。
|
|
pathletboyJul 8, 2015
8
|
|
gamexgJul 8, 2015
9
建议串口连接 Arduino ,底层的全部由 Arduino 来做。
高级语言很难满足底层的时序要求。来个进程切换时序就完蛋了。 |
|
10
|
|
zhengnanleeJul 9, 2015 via Android
11
你的蓝牙模块可不可以i2c呢?
|
|
weyouJul 9, 2015
12
看你的蓝牙模块的接口, 是不是支持i2c或者spi, 这两种总线接口RPi都支持, 并且有现成的python库可以用。
如果这两种总线你的蓝牙模块都不支持,才需要考虑用GPIO来进行软模拟(bit banging)。试验过GPIO最高的切换频率只能到达30kHz左右,所以你的蓝牙通信的波特率也不能超过这个频率,你可以查看下你的蓝牙模块对通信频率的要求。 |
|
13
|
|
14
我的主模块是一个 串口透传模块
|
|
zhengnanleeJul 9, 2015 via Android
15
@GPU 啊哈ZigBee。可以拿ZigBee模拟i2c,51代码直接用。rPi端用wiringPi或smbus都可以实现i2c。
|
|
zhengnanleeJul 9, 2015 via Android
16
@GPU https://github.com/zhengnanlee/rPi_I2C_1602 用i2c操纵1602屏幕
|
|
17
@zhengnanlee 我那个蓝牙貌似没有引出 i2c 的io口
|
|
zhengnanleeJul 9, 2015 via Android
18
任选二gpio,百度“51 i2c”,谷歌“51 i2c”
|
|
19
@zhengnanlee 我现在的两个蓝牙模块连接之后是透传模式 ,我是需要在主模块的串口上面发送字符串到从模块 ,然后从模块的单片机识别到字符串之后 再输出低电平 然后启动开关
但是用i2c 的话 是不是我就要换蓝牙模块了 |
|
zhengnanleeJul 9, 2015 via Android
20
@GPU 不需要。无线收发字符在ZigBee里不需要用gpio。协议栈写好了主函数正常收发即可。主函数的无限循环可以是这个逻辑:模拟i2c从树莓派读取数据,判断处理,无线发送。从机一直查询蓝牙即可。
|
|
21
@zhengnanlee 我没有蓝牙编程的工具呢,现在的蓝牙模块只有串口透传功能
|
|
zhengnanleeJul 10, 2015 via Android
22
@GPU 并不明白你在说什么
|
|
23
@zhengnanlee 我现在买的 蓝牙模块 它主从模块连接之后 ,只有串口透传的功能 。而没有把i2c的引脚弄出来
|
|
zhengnanleeJul 10, 2015 via Android
24
@GPU 不是CC2540吗?
|
|
zhengnanleeJul 10, 2015 via Android
25
@GPU 如果你的CC2540没有引出别的io,单纯是数据传输的话,我建议换一个。
|
|
26
@zhengnanlee 是 CC2540 的 ,但是那个 信驰达的没有引出对应脚
|
|
zhengnanleeJul 11, 2015 via Android
27
@GPU 那就换一个设备吧
|