您尚未登录。

楼主 # 2022-08-16 01:41:52

hameyou
会员
注册时间: 2018-04-15
已发帖子: 196
积分: 8.5

【代码分享】串口自收自发

板子刚收到,看了坛友的分享的历程,看到有串口发送的例子,没找到接收的,研究了一下,这个接收处理和STM32不太一样,貌似做了深度为16的循环fifo,
简单调了一下,实现收到PC端串口调试助手发送的数据,然后再发送回去。

void thread1_main(void) 

    uart8_init(); 
    uint8_t rx_rp=0; 
    GPCOM8_RX_WP = 0; 
    char c; 
    while(1){ 
        if(rx_rp!=GPCOM_GET_RX_WP(GPCOM8_BASE_ADDR))//判断是否接收到数据 
        { 
            c=GPCOM_GET_RX_DATA(GPCOM8_BASE_ADDR,rx_rp);//读取数据 
            printf("%c",c); 
            rx_rp++; //读取指针加1 
            rx_rp=rx_rp&0x0F;//越界处理 
        } 
    } 
    thread_end(); 
}

离线

#1 2022-08-16 10:48:25

support_gxchip
Moderator
注册时间: 2022-07-26
已发帖子: 58
积分: 103

Re: 【代码分享】串口自收自发

感谢分享,FIFO实际深度是8,指针是4bit的

离线

#2 2023-06-15 15:44:45

aa
会员
注册时间: 2023-06-15
已发帖子: 1
积分: 1

Re: 【代码分享】串口自收自发

您好,能分享下串口相关的代码吗

离线

#3 2023-06-20 08:39:23

Copper
会员
注册时间: 2021-12-29
已发帖子: 30
积分: 60

Re: 【代码分享】串口自收自发

@hameyou
串口的收好像都是程序轮询的方式啊?

离线

#4 2023-06-21 07:18:19

游乐场
会员
注册时间: 2022-07-29
已发帖子: 54
积分: 172

Re: 【代码分享】串口自收自发

Copper 说:

@hameyou
串口的收好像都是程序轮询的方式啊?

是的,因为没有中断,可以使用一个线程专门轮询接收,当作一个中断函数用

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn