名词解释:
串行接口是一种可以将接收来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接收的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。
串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节的通信方式。
想要灵活运用CB5654,必须要学会串口通信哦,不然做出的作品就是一个空有有趣灵魂而没有行动能力的玩偶了。
资源与布局图
功能与引脚定义表
由上图和上表可知,CB5654的串口资源有电脑专用调试串口、UART RXD3和TXD3,通过观察开发版还可以看到在两个USB中间有RXD2和TXD2。 使用专用调试串口可通过printf函数完成打印。 使用UART RXD3和TXD3需要自行配置。
调试串口之自定义串口指令
自定义串口指令需要参考例程smart_voice_terminal_sc5654中cli_app.c文件中的cmd_app_func()函数。以下格式作为参考。 代码:
//第一位判断
if (strcmp(argv[1], "自定义指令") == 0) {
//第二位判断
if (strcmp(argv[2], "off") == 0) {
//功能函数;
} else {
//功能函数;
}
}
指令:app 自定义指令 off
注:strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1str2,则返回正数。
UART RXD3和TXD3配置
新建usart.c 和usart.h 文件,usart.h需要包含在app_main.h中。
- USART TXD和RXD等管脚匹配 (PD7, PD8, 2, PD7_UART3_TX, PD8_UART3_RX,串口需要为2 )
- 调用csi_usart_initialize初始化USART,设置事件回调函数
- 调用csi_usart_config配置USART参数(速率、模式、停止位、数据格式等)
115200,USART_MODE_ASYNCHRONOUS,USART_PARITY_NONE,USART_STOP_BITS_1, USART_DATA_BITS_8 - 调用csi_usart_send发送数据
- 调用csi_usart_receive来接收数据
- 程序结束调用csi_usart_uninitialize去初始化
初始化完成之后就可以调用啦! 调用格式为usart_test_mode(2,data1,sizeof(data1));注意函数只能发送数据,还没有接受数据的函数。谢谢大家!致敬2020最美逆行人和蜗居在家敲代码的头上长草人。 祝2020研电赛顺利举行!!希望此文可以帮到你~
文章来源:芯片开放社区
文章链接:https://occ.t-head.cn/community/post/detail?spm=a2cl5.14300636.0.0.1b87180fOJm8Ux&id=3789327203281018880