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