基于天问block编译环境下ASRPRO语音芯片程序编写教程(三)串口通信,多线程模块,ADC篇
本篇教程将基于天问block内的官方范例代码讲解如何编写ASRPRO语音芯片程序以实现串口通信多线程模块编程和ADC数据读入功能。
1.串口通信
ASRPRO语音芯片具有3组可用串口(UART1对应PA2,PA3,UART2对应PA5,PA6,UART0
对应PB5,PB6),同时UART0默认是APSRPRO语音芯片的程序烧录口,故在使用时不会对这两个引脚复用其他功能。在后续程序中由于无需复用引脚且不需要外加新的串口硬件外设,故常用于测试程序,在应用时请尽可能只使用1,2两个串口且记得在使用前复用引脚。
如图在使用串口1进行通信前现将PA2和PA3复用为UART1_TX(输出串口)和UART2_RX(输入串口),其中引脚默认功能GPIO口为第一功能,括号内功能从第二开始计数,串口功能位于括号内第三,故串口功能为第四功能。在连接串口时TX接RX,RX接TX,GND接GND,电源按串口设备所需电压选择连接。
串口通信范例程序如下:
在程序中使用串口是需现设置串口通信的波特率,在下方串口打印数据时可选择自动换行和默认的不换行两种程序块,前者会在发送数据后自动发送/n进行换行,根据接收端需求进行选择。
在编程界面右上角有串口监视器选项,用于监视通过USB连接到电脑的串口,上述程序使用的是烧录程序的串口0进行通信,因此可以之间选择烧录程序时使用的USB线进行串口通信测试,使用UART1,2时可使用串口USB转换线连接单片机和电脑进行测试
串口监视器主要功能如下:
通过串口监视器可对有串口输出功能的程序进行测试。
2.多线程模块
多线程模块作为ASRPRO语音芯片功能强大的特色之一,可以让多个任务在操作系统的调度下分时并行执行,多个线程之间使用消息队列进行通信。在一定程度上取代了中断和定时器的功能。在一定程度上可以看作多线程模块将单片机分成多块可预设内存的小单片机,分别执行各种不同的功能,而消息队列则类似于多个小单片机之间的串口通信,从而达到在同一时间执行多个不同功能的效果。
多线程模块范例程序如下:
同时在多线程模块的程序块选项中有软件定时器可以独立线程的形式单独放置,使定时器内部的程序每隔一定时间运行一次,从而实现定时器的功能,使用前需现用相关程序启用定时器,使用结束后需使用程序停止定时器。而临界保护程序则能够让内部的程序在进行其他程序的任务调度时不被打断,正常运行。
3.ADC模块
如同常规单片机上的ADC输入检测一样,ASPRPRO语音芯片上的ADC检测可将引脚外接的电流信号数据传入预设的变量之中,在后续的程序中使用,其中可检测的ADC电信号的分辨率为 12 位,返回值范围为 0~4095。只有PC_1,PC_2,PC_3,PC_4引脚具有ADC输入检测功能。
ADC输入检测范例程序如下:
以上便是使用天问BLOCK软件编写ASERPRO语音芯片控制的单片机的基本操作教程,后续我将在发一篇文章讲解该芯片的常用外设的程序编写方法。
基于天问block编译环境下ASRPRO语音芯片程序编写教程(三)串口通信,多线程模块,ADC篇相关推荐
- 基于天问block编译环境下ASRPRO语音芯片程序编写教程(一)软件下载与基础程序语句篇
ASRPRO芯片是针对低成本离线语音应用方案开发的一款通用.便携.低功耗高性能的语音识别芯片,采用了第三代 BNPU 技术,能支持 DNN\TDNN\RNN 等神经网络及卷积运算,支持语音识别.声纹识 ...
- 基于天问block编译环境下ASRPRO语音芯片程序编写教程(二)语音识别,GPIO输入输出,PWM输出篇
本篇教程将基于天问block内的官方范例代码讲解如何编写ASRPRO语音芯片程序以实现语音识别,GPIO输入输出和PWM输出功能. 1.智能语音对话 该程序中添加识别词功能添加命令词选项(黑色部分)为 ...
- 基于CMake构建MSVC_CUDA及MinGW编译环境下的的OpenCV项目
前言 第一次搭建OpenCV开发环境的时候各种报错,内心那个烦啊,简直了.当时只能针对某个特定的错误去寻找特定的解决方法,在OpenCV构建过程中出现最多的问题就是各个模块文件的下载问题,本质上这类问 ...
- Adopt Open JDK官方文档(四)基于虚拟机的编译环境
4.基于虚拟机的编译环境 准备工作 编译你自己的虚拟机 编译你自己的轻量级虚拟机 在Host 与 Guest VM 之间共享文件 适用于 OpenJDK 8 的Vagrant Puppet 环境 4. ...
- 成功解决VS编译环境下C++语言出现的异常提示:烫烫烫烫烫烫烫烫烫烫
成功解决VS编译环境下C++语言出现的异常提示:烫烫烫烫烫烫烫烫烫烫 目录 解决问题 解决方法 解决问题 解决方法 "烫"常出现在Windows环境下,执行越界访问的程序,会打印出 ...
- 让计算机网络与作文教学,“基于计算机和网络环境下的写作教学研究”课题组 2015-2016学年度上学期研究计划...
白洋中心湖美小学"基于计算机和网络环境下的写作教学研究"课题组 2015-2016学年度上学期研究计划 根据<诏安县2015年度校级基础教育课程教学研究课题立项名单公布> ...
- 在Keil MDK编译环境下使用UEstudio编写程序
在Keil MDK编译环境下使用UEstudio编写程序 由于一些原因目前只能使用ulink2来调试arm微处理器,因此不得不放弃iar与jlink.转入MDK的阵营后,为了减小对自己的习惯的影响,今 ...
- 基于纹理的复杂环境下道路消失点检测算法
个人博客:wyxogo.top 标题 基于纹理的复杂环境下道路消失点检测算法 年份: 2014 年 6 月 GB/T 7714: [1]傅重添, 杨健, 路飞飞. 基于纹理的复杂环境下道路消失点检测算 ...
- linux编译环境下,华为LiteOS初体验(STM32F407)
linux编译环境下,华为LiteOS初体验(STM32F407) 1.概述 系统:Ubuntu22.04,linux版本号如下 Linux linux 5.15.0-40-generic #43-U ...
最新文章
- python用什么编译器较好-python用什么编译器
- 1_3 SingletonMode 单例模式
- org.springframework.web.multipart.MultipartException: The current request is not a multipart request
- ES5-6 作用域、作用域链、预编译、闭包基础
- vector自动扩容如何实现_腾讯云ClickHouse如何实现自动化的数据均衡?
- [Unity] TortoiseSVN 的 CheckOut 未响应的解决记录
- 神武咪咕汇点燃大湾区 多益网络深化新文创实践
- 数据结构---红黑树的原理
- 计算机策略 提高网速,win10增加网速的方法_win10如何提高电脑网速
- 信息系统项目管理基础
- DX11:先定一个小目标,比如:把DX11龙书上的知识点系统的总结下来
- 奇葩问题☞ npm install 报错 gyp ERR
- 菜鸟窝Android百度云视频,菜鸟窝React Native 视频系列教程
- [C语言]倒序输出字符串
- NP=P,一种解决方案
- keepalived健康检查
- 【问题解决】KeyError: ‘profit‘ raise KeyError(key) from err
- 利用模板方法设计模式实现代码的利用的工程实践
- 联想计算机功耗,用起来又流畅又舒服功耗还低_联想ThinkCentre E95z(i3 7100U/4GB/500GB/集成)_一体电脑评测-中关村在线...
- 2020年《财富》中国500强排行榜数据爬取,看看都有哪些