芯查查logo
  • 数据服务
    1. 新产品
    2. 物料选型
    3. 查替代
    4. 丝印反查
    5. 查品牌
    6. PCN/PDN
    7. 查方案
    8. 查代理
    9. 数据合作
  • SaaS/方案
      SaaS产品
    1. 供应链波动监控
    2. 半导体产业链地图
    3. BOM管理
    4. 解决方案
    5. 汽车电子
    6. 政府机构
    7. 数据API
  • 商城
  • 行业资讯
    1. 资讯
    2. 直播
  • 论坛社区
    1. 论坛
    2. 学习
    3. 测评中心
    4. 活动中心
    5. 积分商城
  • 查一下
  • 开通会员
国民技术N32G401C8L7开发板测评+调试USART
原创 发布时间:2024/06/19 14:48
版块:
开发板测评
简介:国民技术N32G401C8L7开发板测评+调试USART

一:国民技术串口知识介绍

1.1串口知识

通用同步异步收发器(USART)是一种全双工串行数据交换接口,支持同步或异步通信。可灵活配置,以便于与多种外部设备进行全双工数据交换。

USART 接口发送与接收波特率可配置,也支持通过 DMA 进行连续通信。 USART 还支持多处理器通信、LIN 模式、同步模式、单线半双工通信、智能卡异步协议、 IrDA SIR ENDEC 功能、以及硬件流控制功能。 

1.2 串口特性

n 支持全双工通信

n 支持单线半双工通信

n 波特率可配置,最高波特率可达 4Mbit/s

n 支持 8bit 或 9bit 数据帧

n 支持 1bit 或 2bit 停止位

n 支持硬件生成校验位及校验位检查

n 支持硬件流控: RTS、 CTS

n 支持 DMA 收发

n 支持多处理器通信:如果地址不匹配,则进入静默模式, 可通过空闲总线检测或地址标识唤醒

n 支持同步模式,允许用户在主模式下控制双向同步串行通信

n 支持智能卡异步协议,符合 ISO7816-3 标准

n 支持串行红外协议(IrDA SIR)编码与解码,提供正常与低功耗两种运行模式

n 支持 LIN 模式

n 支持多钟错误检测:数据溢出错误、帧错误、噪声错误、检验错误

n 支持多个中断请求:发送数据寄存器为空、 CTS 标志、发送完成、数据已接收、数据溢出、总线空闲、

检验错误、 LIN 模式断开帧检测、以及多缓冲区通信中的噪声标志/溢出错误/帧错误 

1.3 硬件连接

 

需要将板载的PA9,PA10引脚利用跳线帽安装到调试器的串口1上面,这样我们就可以使用板载USB接口查看串口发出的数据了。

1.4软件控制流程

步骤1:串口时钟使能,GPIO时钟使能,使能串口时钟:    

GPIO_AHBClkCmd(USARTx_GPIO_CLK);

USART_APBxClkCmd(USARTx_CLK);

步骤2:GPIO端口模式设置:  GPIO_Configuration();  //此处注意使用的IO口是否正常,是否需要映射。

步骤3:串口参数初始化:USART_Init(); //初始化,波特率,停止位,校验位等信息

步骤4:开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)

      NVIC_Init();

      USART_ITConfig();

步骤5:使能串口:    USART_Enable(USARTx);

步骤6:编写中断处理函数:UART1_IRQHandler();

 

这里将串口1映射到Printf函数中:配置信息如下:

int fputc(int ch, FILE* f)

{

    USART_Data_Send(USARTx, (uint8_t)ch);

    while (USART_Flag_Status_Get(USARTx, USART_FLAG_TXDE) == RESET)

        ;

 

    return (ch);

}

 

主函数:

    RCC_ClocksType RCC_ClocksStatus;

    

    /* System Clocks Configuration */

    RCC_Configuration();

 

    /* Condiv the GPIO ports */

    GPIO_Configuration();

 

    RCC_Clocks_Frequencies_Value_Get(&RCC_ClocksStatus);

    /* USARTy and USARTz configuration ------------------------------------------------------*/

    USART_InitStructure.BaudRate            = 9600;

    USART_InitStructure.WordLength          = USART_WL_8B;

    USART_InitStructure.StopBits            = USART_STPB_1;

    USART_InitStructure.Parity              = USART_PE_NO;

    USART_InitStructure.HardwareFlowControl = USART_HFCTRL_NONE;

    USART_InitStructure.Mode                = USART_MODE_RX | USART_MODE_TX;

 

    /* Condiv USARTx */

    USART_Initializes(USARTx, &USART_InitStructure);

    /* Enable the USARTx */

    USART_Enable(USARTx);

 

    /* Output a message on Hyperterminal using printf function */

//   printf("\n\rUSART Printf Example: retarget the C library printf function to the USART\n\r");

 

    while (1)

    {

 

printf("\n\r芯查查测评活动------聪聪哥哥\n\r");

 

 

SysTick_Delay_Ms(500);

}

 

连接上主板,打开串口工具测试一下发出的数据是否正常。

 

 

测试视频如下:

 

二:利用E32模块接收发送串口数据

2.1:E32模块模块资料:

 

该电路只需将模块的TXD 与 RXD 连接到 MCU的RXD和TXD即可。

E32模块是基于SX1278射频芯片的贴片型无线串口模块(TTL电平),透明传输方式,发射功率100MW,工作在410-441MHZ频段,采用LORA扩频技术。

SX1278支持LORA扩频技术,通讯距离远,抗干扰能力强的优势,同时有极强的保密性。模块具有数据加密和压缩功能,模块在空中传输的数据,具有随机性,通过严密的加解密算法,使得数据截获失去意义。而数据压缩功能有概率减小传输时间,减少受干扰的概率,提高可考性和传输效率。

模块的特点功能:

 

模块的工作参数

 

 

 

模块的指令格式:

 

硬件连接图片如下:

 

此处注意一下:将板载调试器的PA9,PA10的两根线断开,否则对串口传输会有影响。

然后利用自制的接收模块连接上电脑,查看一下接收到的数据。

接收模块图片如下:

 

 

测试结果如下:

 

 

目前只是测试了串口的发送功能,稍后测试串口接收功能,再和大家一起探讨。。。。

开源社区 开发板测评
2024/06/19 14:48
  • 举报
😁😂😃😄😅😆😉😊😋😌😍😏😒😓😔😖😘😚😜😝😞😠😡😢😣😤😥😨😩😪😫😭😰😱😲😳😵😷😸😹😺😻😼😽😾😿🙀🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏✂✅✈✉✊✋✌✏✒✔✖✨✳✴❄❇❌❎❓❔❕❗❤➕➖➗➡➰🚀🚃🚄🚅🚇🚉🚌🚏🚑🚒🚓🚕🚗🚙🚚🚢🚤🚥🚧🚨🚩🚪🚫🚬🚭🚲🚶🚹🚺🚻🚼🚽🚾🛀Ⓜ🅰🅱🅾🅿🆎🆑🆒🆓🆔🆕
@好友

全部评论

加载中
游客登录通知
已选择 0 人
自定义圈子
移动
发布帖子
发布动态
发布问答
发布者
聪聪哥哥
最新帖子
树莓派pico 2测评 - 初体验【工程师经验】+ 飞线【开源】zvs142857 2.1A,3A快充 充电宝迷你UC3842 开关电源优化全解析:攻克常见难题,提升性能飞腾CPU × DeepSeek大模型,双芯加持全系列稳跑
热门版块
查看更多
电子DIY
电子元器件
维修技术
抄图联盟
汽车电子工程师论坛
工业电子专区
新手入门指南
单片机/MCU论坛
PCB设计
开源项目

176

收藏

分享

微信扫码
分享给好友

评论