libai500 发表于 2022-5-2 18:23:41

鹿小班LU-ASR01-第二硬串口配置方法

本帖最后由 libai500 于 2022-5-9 17:39 编辑

      日前经祝老师亲自评测,IO6,IO7可以作为第二串口使用,第二串口在天问程序中名为serial1,映射serial1到IO6、IO7方法如下图。早先IO7因映射不得要领,楼主一度认为IO7无法使用,幸好祝老师及时援手并发现要领得以纠正,现发布到论坛,希望对天问ASR用户有所帮助。

注意事项:有朋友反应启用串口1,播放声音会卡顿,这是因为丢了串口1通讯超时指令10mS。注意截图中的超时设置指令,该指令含义为:如果10mS内没有接收到新数据,接收函数返回线程调用,不在高速占用资源。默认是1秒,会长时间占用线程资源,导致语音播放任务的时间片被挤压而卡顿。ASR是基于FreeRTOS,构架非常精细灵活,但也需要合理使用,各线程之间需要互相留有余地,虽然多线程为抢占式,但也不能毫无节制的占用处理器时间片。以上细节原理在《TWEN-ASR高级编程手册》里有描述,不过还没出版。开个玩笑。
       当然,解决方法除了设置10mS或更快的超时限定外,还有降低接收线程优先级避让播放任务或重写一个非阻塞的帧接收代码,例如,判断接收缓冲区内是否有协议预案中需要的字节数,字节数够了再去读,不要一有数据就去读,诸如此类。相信大家各自自有妙招,我就不一一举例。



robincw 发表于 2022-5-5 15:23:53

很棒,有时间试验一下

13537256155 发表于 2022-5-23 10:50:18

很强大,呀!实用

MMX33 发表于 2022-8-8 17:44:30

串口只能收到第一个字符是怎么解决呢

hzxc 发表于 2022-8-11 11:26:47

MMX33 发表于 2022-8-8 17:44
串口只能收到第一个字符是怎么解决呢

具体截图贴一下

ListenTo 发表于 2023-1-8 11:38:13

你好楼主,我这边RX还是实现不了,改回原来的串口语句是可以执行的,目前用你这个方法只能用TX,rx是不是复用引脚功能和TX不一样啊

C8T6 发表于 2023-9-9 21:47:10

请问你这个问题解决了吗

我爱大米粒 发表于 2023-12-25 02:04:55

本帖最后由 我爱大米粒 于 2023-12-25 10:27 编辑

只能用tx,rx还是用不了呀。

我爱大米粒 发表于 2023-12-25 10:26:11

ListenTo 发表于 2023-1-8 11:38
你好楼主,我这边RX还是实现不了,改回原来的串口语句是可以执行的,目前用你这个方法只能用TX,rx是不是复 ...

我也是,和你遇到的问题一样

libai500 发表于 2023-12-30 00:56:36

本帖最后由 libai500 于 2023-12-30 01:02 编辑

综合大家遇到的问题,注意事项如下:
1,第二串口接收引脚是P06即IO7,不是IO6
2,ASR电平时3.3V,对5VTTL电路或232电路,要进行必要的电平转换。

硬件设计合理性,不能含糊。
3,提早升级为ASRPRO,ASRPRO不但有三个串口,也从整体性能和技术支持有长足进步,性价比卓越
页: [1]
查看完整版本: 鹿小班LU-ASR01-第二硬串口配置方法