原创 配置USART3并启用接收功能完整的示例代码片段

2024-11-14 08:11 484 4 4 分类: 物联网 文集: 博客

以下是一个完整的示例代码片段,展示了如何配置USART3并启用接收功能:

#include "usart.h"
#include "gpio.h"
#include "interrupt.h"

int main(void) {
    // USART3 初始化
    ustart(USART3, CRM_USART3_PERIPH_CLOCK, TRUE);
    gpio_init(GPIOB, &GPIOInitStruct); // 假设USART3的TX和RX分别连接到GPIOB的某些引脚
    gpio_pin_mux_config(GPIOB, GPIO_PIN_SOURCE11, GPIO_MUX_7);
    gpio_pin_mux_config(GPIOB, GPIO_PIN_SOURCE10, GPIO_MUX_7);
    
    // USART3 参数配置
    usart_parameter_struct usart3initstruct;
    usart3initstruct.usart_baudrate = 9600;
    usart3initstruct.usart_mode = USART_MODE_Rx | USART_MODE_Tx;
    usart3initstruct.usart_wordlength = USART_WLEN_8BITS;
    usart3initstruct.usart_stopbits = USART_STOPBITS_1;
    usart3initstruct.usart_parity = USART_PARITY_NO;
    usart3initstruct.usart_hardwareflow = USART_HARDWAREFLOWTH_NONE;
    
    usart_init(USART3, &usart3initstruct);
    
    // 使能USART3
    usart_enable(USART3, ENABLE);
    
    // 使能USART3接收中断
    uart_interrupt_receive_enable(USART3, ENABLE);
    uart_interrupt_receive_flag_clear(USART3, RESET);
    mvic_irq_enable(USART3_IRQn);
    mpri_config(USART3_IRQn, PRIGROUP_PRIO3, 0);
    
    // 主循环
    while (1) {
        // 显示固定文本
        LCD_ShowString(0, 0, "Loc:", 0xffff, 0x0000);
        LCD_ShowString(0, 16, "Lat:", 0xffff, 0x0000);
        
        // 检查是否有数据可读
        if (SET == usart_flag_get(USART3, USART_RDBF_FLAG)) {
            uint8_t RxData = usart_data_receive(USART3);
            UsartSendByte(RxData); // 回显接收到的数据
        }
    }
}


请根据上述建议逐一排查问题,并确保所有配置都正确无误。如果问题依然存在,可以尝试逐步简化代码,找出具体的问题所在。 

作者: 丙丁先生, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3996156.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

开发工匠 2024-11-16 20:04

写的好,学习和参考,很适用
相关推荐阅读
丙丁先生 2025-02-13 08:43
论Deepseek的未来
Deepseek是一家在中国AI行业中处于领先地位的公司,其产品涵盖了语音识别、自然语言处理、计算机视觉等多个领域。Deepseek的技术实力和创新能力在AI行业中备受认可,其发展前景也非常广阔。 ...
丙丁先生 2025-02-02 10:53
P3PU |= 0x20;
1. 功能分析    在许多基于51单片机或者其他类似架构的代码中,`P3PU |= 0x20;`这行代码通常是用于设置`P3`端口(假设这里是`P3`端口)的某个引脚的上拉电阻使...
丙丁先生 2025-01-26 12:37
MYi0002V0405_MotorBoard_V1.1测评第一集英文说明
以下测试项目的编号和名称: 1. 外部复位 NRST 引脚测试    说明: 这个测试项目用于验证设备的外部复位功能是否能够通过 NRST 引脚正常触发。这涉及到硬件复位机制的检...
丙丁先生 2025-01-26 11:23
metanergy MYi0002v0405_MotorBoard_V1.1双电阻代码片段解析
/* =================================================================================================...
丙丁先生 2025-01-21 12:10
聊聊RISC-V MCU技术
嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的...
我要评论
1
4
关闭 站长推荐上一条 /1 下一条