| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> K210应用5-使用中断方式通过UART接收数据 -> 正文阅读 |
|
[嵌入式]K210应用5-使用中断方式通过UART接收数据 |
使用中断方式通过UART接收数据
????????本节实验目的为实现串口发送和接收。这一节计划采取中断的方式来实现串口接收,K210串口接收到0x00,则熄灭前节提到的红色LED灯,并通过串口打印Red Led Off,否则,则点亮前节提到的红色LED灯,并通过串口打印Red Led On。
????????1)、带UART和发光二极管(LED)的K210开发板一块,用于实践并查看实验现象; ????????2)、官方裸机编程指导手册:kendryte_standalone_programming_guide,用于查阅SDK中接口说明。
????????串口通信是指外设和计算机间,通过数据线、地线和控制线等,按位进行数据传输的一种通信方式,传输方式为一个字符一个字符的传输,每个字符一位一位的传输,先传输低位,再传输高位,并且传输每个字符时,总是以起始位开始,以停止位结束,位于位之间可根据自己需求,设置时间间隔,这个时间间隔对应波特率;而对于有些场景,为了保证数据的可靠性,还需加上校验位,称之为奇偶校验位,以此来校验传输数据的正确性。如果两台设备之间需要通过串口进行通信,上面提到的波特率、数据位、停止位和奇偶校验位等这些必要参数,必须设置一致,才能进行串口通信。另外,串口通信支持全双工通信,即:使用一根数据线发送数据的同时,可以用另一个数据线进行数据接收。
????????硬件电路图如下:
????????软件流程图如下:
????????根据硬件设计和软件设计可知,本节应用实现步骤如下: ????????1)、设置引脚复用功能:由硬件原理图可知:我们需要将IO12设置为GPIOHS功能,IO4和IO5设置为UART的RX和TX功能,如下图: ????????2)、LED初始化,如下图: ????????3)、UART初始化,如下图: ????????4)、实现uart3接收中断回调函数,在接收中断回调函数中,实现串口接收和记录接收数据长度,如下图: ????????5)、通过UART发送提示信息,如下图: ????????6)、判断是否接收到数据,如果接收到数据,判断接收到的控制命令类型,根据接收到的控制命令,进行相应的操作,如下图: ????????根据上述实现步骤,最终代码如下:
????????1)、同上一节类似,在SDK中创建uart_irq文件夹,在新建的文件夹中创建一个main.c文件,然后将本节代码输入到main.c文件中,如下图: ????????2)、同上一节的编译方式类似,打开vscode终端,在终端中进入上一节创建的build文件夹,然后输入:cmake ../ -DPROJ=uart_irq -G "MinGW Makefiles" ,生成makefile文件,如下图: ????????3)、生成makefile文件后,输入:make ,开始编译,如下图: ????????4)、编译完成后,会在build目录下生成烧录文件:uart_irq.bin,如下图:
????????同上一节的烧录方式类似,注意:Firmware那一项选择我们刚编译出的uart_irq.bin文件。
????????通过串口助手,发送0x00,红色LED灯熄灭,发送其他非零数,红色LED亮起。如下图: ????????1)、开启LED ????????2)、关闭LED
????????1)、K210串口中断有接收中断和发送中断,用户可根据需求设置想要的中断方式; ????????2)、K210串口的中断可设置触发FIFO深度,用户可根据需求设置想要的FIFO深度。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:17:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |