想用CH582做一个ADB键盘转USB和蓝牙的设备,现在的问题是ADB(Apple Desktop Bus)是非常奇葩的用占空比表达0和1的协议:https://www.lopaciuk.eu/2021/03/26/apple-adb-protocol.htmld
65 μs 低电平 + 35 μs 高电平表示 0, 35 μs 低电平 + 65 μs 高电平表示 1
这样是不是就得写个循环一直检测GPIO的高低电平持续时间?但是TMOS里任务间隔都是625us,如何能够持续的检测GPIO呢?
查看: 1759
回复: 4
CH582 TMOS中如何进行持续的GPIO读取
热门产品 :
USB3.0 HUB控制器:CH634
你这里的目的应该是模拟这个电平,可以通过定时器中断里面拉波形,此时不要进行睡眠。等到波形操作完成再进行睡眠。
既然是读取GPIO电平,为啥不用中断嘞.或者直接在主循环中写一个函数一直轮询.感觉用TMOS任务时间精度达不到吧
3楼说的有理,我的设想是通过GPIO中断来读取电平,通过定时器中断来写入电平。就是不知道TMOS的任务会不会和这些中断冲突,比如蓝牙正在发送,来了一个GPIO中断,会不会影响蓝牙发送的执行?
因为需要使用蓝牙功能,所以TMOS必须开启。
可以查看函数的返回值是否为成功。
例如noti发送数据,判断simpleProfile_Notify函数的返回值为0,则代表数据已经发送到底层,在蓝牙建立连接的情况下,数据一定会发送成功。如果此处的返回值不为0,则代表发送失败,可以应用层重复调用发送函数。
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录