邯郸做网站熊掌号WordPress获取标签名字
news/
2025/9/28 15:43:36/
文章来源:
邯郸做网站熊掌号,WordPress获取标签名字,国内最佳网站建设设计,自助建站系统介绍文章目录 前言一、什么是UART#xff1f;二、K210的UART三、实验过程总结 前言
串口通讯是平时大家进行调试最常用的方法#xff0c;嵌入式应用通常要求一个简单的并且占用系统资源少的方法来传输数据。通用异步收发传输器 (UART)即可以满足这些要求#xff0c;它能够灵活地… 文章目录 前言一、什么是UART二、K210的UART三、实验过程总结 前言
串口通讯是平时大家进行调试最常用的方法嵌入式应用通常要求一个简单的并且占用系统资源少的方法来传输数据。通用异步收发传输器 (UART)即可以满足这些要求它能够灵活地与外部设备进行全双工数据交换那么本章我们来了解下本节课主要学习K210的串口通讯。 一、什么是UART
串口通讯是指外设和计算机间通过数据信号线、地线等按位bit进行传输数据发送和接收的一种通讯方式一个字符一个字符地传输每个字符一位一位地传输并且传输一个字符时总是以“起始位”开始以“停止位”结束字符之间没有固定的时间间隔要求但是数据是低位在前高位在后然后接上奇偶检验位。 串口支持全双工通讯也就是使用一根线发送数据的同时用另一根线接收数据。串口通讯最重要的参数是波特率、数据位、停止位和奇偶校验对于两个通讯的端口这些参数是必须设置为相同的。 也可以参考我的这篇文章STM32开发7----CubeMX配置串口通讯轮询方式
二、K210的UART
Tpye-C接口连接到串口芯片具有供电和串口传输数据的功能下载程序也是通过串口传输数据的功能把固件传输到K210芯片上的。
Type-C接口是目前主流的数据传输连接接口市面上很多智能手机也是使用Type-C接口给手机充电和传输数据。Type-C接口是可以正反插的不用担心反向拿反而插不进的问题。
通用UART 为UART1、UART2 和UART3支持异步通信RS232 和RS485 和IRDA通信速率可达到5Mbps。UART 支持CTS 和RTS 信号的硬件管理以及软件流控(XON 和XOFF)。3 个接口均可被DMA 访问或者CPU 直接访问。每次传输数据为8字节支持异步时钟可单独配置数据时钟实现全双工模式保证两个时钟域中数据同步。
uart默认为RS232模式也可以配置为软件可编程式RS485模式。 K210 Tpye-C接口连接K210的IO4和IO5接口其中IO4为K210芯片的接收引脚IO5为K210芯片的发送引脚。 对应的头文件 uart.h 为用户提供以下接口 • uart_init • uart_config (0.6.0 后不再支持请使用 uart_configure) • uart_configure • uart_send_data • uart_send_data_dma • uart_send_data_dma_irq • uart_receive_data • uart_receive_data_dma第 11 章 通用异步收发传输器 (UART) 125 • uart_receive_data_dma_irq • uart_receive_data_dma_irq • uart_irq_register • uart_irq_deregister • uart_set_work_mode • uart_set_rede_polarity • uart_set_rede_enable • uart_set_tat • uart_set_det • uart_debug_init • uart_handle_data_dma
三、实验过程
新建一个uart的文件夹在里面新建main.c以后也都是这样我们每一个实验放一个文件夹
#include fpioa.h
#include uart.h
#include string.h
// 硬件IO口与原理图对应
#define PIN_UART_USB_RX (4)
#define PIN_UART_USB_TX (5)/*****************************SOFTWARE-GPIO********************************/
// 软件GPIO口与程序对应
#define UART_USB_NUM UART_DEVICE_3/*****************************FUNC-GPIO************************************/
// GPIO口的功能绑定到硬件IO口
#define FUNC_UART_USB_RX (FUNC_UART1_RX UART_USB_NUM * 2)
#define FUNC_UART_USB_TX (FUNC_UART1_TX UART_USB_NUM * 2)/**
* Function hardware_init
* brief 硬件初始化绑定GPIO口
* param[in] void
* param[out] void
* retval void
* par History 无
*/
void hardware_init(void)
{// fpioa映射fpioa_set_function(PIN_UART_USB_RX, FUNC_UART_USB_RX);fpioa_set_function(PIN_UART_USB_TX, FUNC_UART_USB_TX);
}/**
* Function main
* brief 主函数程序的入口
* param[in] void
* param[out] void
* retval 0
* par History 无
*/
int main(void)
{hardware_init();// 初始化串口3设置波特率为115200uart_init(UART_USB_NUM);uart_configure(UART_USB_NUM, 115200, UART_BITWIDTH_8BIT, UART_STOP_1, UART_PARITY_NONE);/* 开机发送hello yahboom! */char *hello {hello world!\n};uart_send_data(UART_USB_NUM, hello, strlen(hello));char recv 0;while (1){/* 等待串口信息并通过串口发送出去 */while(uart_receive_data(UART_USB_NUM, recv, 1)){uart_send_data(UART_USB_NUM, recv, 1);}}return 0;
}代码写好后我们开始编译注意如果你编译过程中出现错误可以先make clean掉之前生成的过程文件重新生成
cd build
//注意这里的目标文件目录改成uart和刚才新建的文件夹名称一致
cmake .. -DPROJuart -G MinGW Makefiles
make烧录 然后来看看结果吧 那么还有其他方式进行串口输出调试吗我们习惯用printf进行调试这个系统初始化时候已经帮我们做好了一起来看看user_entry.c文件 系统在初始化bsp是有已经注册系统输出回调函数printf 时会调用该函数。系统默认使用 UART3如果需要修改 UART 则调用 uartdebuginit 函数具体请到 uart 章节查看该函数
void _init_bsp(int core_id, int number_of_cores)
{extern int main(int argc, char* argv[]);extern void __libc_init_array(void);extern void __libc_fini_array(void);if (core_id 0){/* Initialize bss data to 0 */init_bss();/* Init UART */fpioa_set_function(4, FUNC_UART3_RX);fpioa_set_function(5, FUNC_UART3_TX);uart_debug_init(UART_DEVICE_3);/* Init FPIOA */fpioa_init();/* Register finalization function */atexit(__libc_fini_array);/* Init libc array for C */__libc_init_array();/* Get reset status */sysctl_get_reset_status();/* Init plic */plic_init();/* Enable global interrupt */sysctl_enable_irq();}因此我们直接使用printf之类的函数也是可以的写个简单的示例如下 这里注意包含头文件
#include bsp.h
#include sysctl.hint main(void)
{int data;printf(Hello world\n);/* Clear stdin buffer before scanf */sys_stdin_flush();scanf(%d, data);printf(\nData is %d\n, data);while(1)continue;return 0;
}代码编译
cd build
//注意这里的目标文件目录改成uart和刚才新建的文件夹名称一致
cmake .. -DPROJprintf -G MinGW Makefiles
make烧录 这个方式是不是更简单以后我们就直接用printf进行打印了 总结
本章介绍了K210 串口通讯的相关知识 K210总共有三个分别是UART1,UART2和UART3uart默认使用RS232模式可以另外配置成可编程式RS485模式uart的引脚如果映射到其他硬件引脚上需要连接其他串口芯片如CH340上才可以显示数据。
注册系统输出回调函数printf 时会调用该函数。系统默认使用 UART3如果需要修改 UART 则调用 uartdebuginit 函数以后我们直接使用printf进行调试即可
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920782.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!