瑞萨单片机论坛
直播中

meiyaolei

12年用户 424经验值
擅长:测量仪表,连接器,EMC/MEI设计,处理器/DSP,接口/总线/驱动,控制/MCU
私信 关注
[经验]

【RA4M2设计挑战赛】串口打印

|开发环境:IDE:MKD 5.30
开发板:RA-Eco-RA4M2
MCU:R7FA4M2AD3CFP

官方资料分享一下串口了解。
串口通信协议简介:串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。 在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设。对于通讯协议, 我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。简单来说物理层规定我们用嘴巴还是用肢体来交流,协议层则规定我们用中文还是英文来交流。 下面我们分别对串口通讯协议的物理层及协议层进行讲解。

image.png
串口通讯结构图

在上面的通讯方式中,两个通讯设备的“DB9接口”之间通过串口信号线建立起连接,串口信号线中使用“RS-232标准”传输数据信号。由于RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个“电平转换芯片”转换成控制器能识别的“TTL标准”的电平信号,才能实现通讯。

计算机与调制调解器的信号线连接
image.png

开发板串口硬件,这里用的是CH340

image.png

与MCU的P110,P109相连接。

核心代码:
打印输出:
printf(" RA4M2 by YAO,[%s, %s]\n", DATE, TIME);
printf(" \r\n");

R_SCI_UART_Write(g_uart9.p_ctrl, (uint8_t *)&ch, 1);

串口初始:
fsp_err_t err = FSP_SUCCESS;

/* Open the transfer instance with initial configuration. */
err = R_SCI_UART_Open(&g_uart9_ctrl, &g_uart9_cfg);
assert(FSP_SUCCESS == err);

/* 等待发送完毕 */
while(uart_send_complete_flag == false);
uart_send_complete_flag = false;


输出结果:
1677940326506.jpg

更多回帖

发帖
×
20
完善资料,
赚取积分