OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3176|回复: 13

STM32F407怎么将usart2--usart3相互发送的数据信号在LCD上显示

[复制链接]

9

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2019-1-3
在线时间
34 小时
发表于 2019-3-17 21:36:22 | 显示全部楼层 |阅读模式
6金钱
STM32F407怎么将usart2--usart3相互发送的数据信号在LCD上显示
已经实现usart2--usart3相互发送的数据信号和LCD单独显示

最佳答案

查看完整内容[请看2#楼]

int main(void) { u8 t; u8 len; u16 times=0; u8 reclen=0; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÏμí3ÖD¶ÏóÅÏè¼¶·Ö×é2 delay_init(168); //Ñóê±3õê¼»ˉ LED_Init(); //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú uart_init(115200 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2019-1-3
在线时间
34 小时
 楼主| 发表于 2019-3-17 21:36:23 | 显示全部楼层
翼行园子 发表于 2019-3-18 16:21
一个板子的也简单啊  一样的 初始化对应的串口即可 也是类似的操作的

int main(void)
{

        u8 t;
        u8 len;       
        u16 times=0;
        u8 reclen=0;        
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÏμí3ÖD¶ÏóÅÏè¼¶·Ö×é2
        delay_init(168);                //Ñóê±3õê¼»ˉ
        LED_Init();                                  //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú  
        uart_init(115200);        //′®¿ú3õê¼»ˉ2¨ìØÂêÎa115200
        usart2_init(115200);
        usart3_init(115200);
        uart4_init(115200);
        uart5_init(115200);
        usart6_init(115200);
        USART2_RX_STA=0;       
        USART3_RX_STA=0;
//        u8 b[t];
        while(1)
        {       
                if(USART_RX_STA&0X8000)                        //½óêÕμ½ò»′Îêy¾YáË
                {
                        reclen=USART_RX_STA&0X7FFF;        //μÃμ½êy¾Y3¤¶è
                          USART_RX_BUF[reclen]=0;                 //¼óèë½áêø·û
                        for(t=0;t<reclen;t++)
                        {
                                while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//μè′y·¢&#203;í&#189;áê&#248;
                                USART_SendData(USART2, USART3_RX_BUF[t]);         //&#207;ò′&#174;&#191;ú2·¢&#203;íêy&#190;Y
//                                while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//μè′y·¢&#203;í&#189;áê&#248;
                        }
                        u2_printf("\r\n\r\n");//2&#229;è&#235;&#187;&#187;DD
                        printf("USART_RX_BUF:%s\r\n",USART_RX_BUF);
                        printf("reclen:%d\r\n",reclen);
//                        printf("USART_ReceiveData:%d\r\n",USART_ReceiveData(USART1));
                        if(reclen==9||reclen==8)                 //&#191;&#216;&#214;&#198;DS1&#188;ì2a
                        {
                                if(strcmp((const char*)USART_RX_BUF,"+LED1 ON")==0)LED1=0;        //′ò&#191;aLED1
                                if(strcmp((const char*)USART_RX_BUF,"+LED1 OFF")==0)LED1=1;//1&#216;±&#213;LED1
                        }
                        USART2_RX_STA=0;         
                        USART3_RX_STA=0;       
                }
                
                if(USART2_RX_STA&0X8000)                        //&#189;óê&#213;μ&#189;ò&#187;′&#206;êy&#190;Yá&#203;
                {
                        reclen=USART2_RX_STA&0X7FFF;        //μ&#195;μ&#189;êy&#190;Y3¤&#182;è
                          USART2_RX_BUF[reclen]=0;                 //&#188;óè&#235;&#189;áê&#248;·&#251;
                        for(t=0;t<reclen;t++)
                        {       
                                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//μè′y·¢&#203;í&#189;áê&#248;
                                USART_SendData(USART3, USART2_RX_BUF[t]);         //&#207;ò′&#174;&#191;ú3·¢&#203;íêy&#190;Y
                        }
                        printf("\r\n\r\n");//2&#229;è&#235;&#187;&#187;DD
//                        printf("USART2_RX_BUF:%s\r\n",USART2_RX_BUF);
                        printf("reclen:%d\r\n",reclen);
                        USART3_RX_STA=0;       
                }                                                                                        
        }
}




在你程序的基础上修改的,请帮忙查看下是否ok,谢谢了
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2019-3-17
在线时间
2 小时
发表于 2019-3-17 22:00:42 | 显示全部楼层
楼主可以说一下USART之间怎么互相通信吗,本人刚开始接触ST32,想请教一下
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2019-3-18 09:31:40 | 显示全部楼层
有点没懂你的意思。你是串口间的数据可以互发,但是没成功显示数据?
回复

使用道具 举报

9

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2019-1-3
在线时间
34 小时
 楼主| 发表于 2019-3-18 10:13:26 来自手机 | 显示全部楼层
peng1554 发表于 2019-3-18 09:31
有点没懂你的意思。你是串口间的数据可以互发,但是没成功显示数据?

嗯嗯,是的。还请帮忙指导,对了刚刚调试代码出现USART2/3重复定义了,改怎么更改呀,我实际是要用到这两个端口的。
回复

使用道具 举报

9

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2019-1-3
在线时间
34 小时
 楼主| 发表于 2019-3-18 10:15:30 来自手机 | 显示全部楼层
962978193a 发表于 2019-3-17 22:00
楼主可以说一下USART之间怎么互相通信吗,本人刚开始接触ST32,想请教一下

你问吧,只要是我会的,答复你。
回复

使用道具 举报

9

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2019-1-3
在线时间
34 小时
 楼主| 发表于 2019-3-18 10:18:13 来自手机 | 显示全部楼层
peng1554 发表于 2019-3-18 09:31
有点没懂你的意思。你是串口间的数据可以互发,但是没成功显示数据?

1.L6200E:SYmbol USART2-RX-BUF multiply defined (by USART2.0and main.o)
2.L6200E:SYmbol USART2-TX-BUF multiply defined (by USART2.0and main.o)
3.L6200E:SYmbol USART2-STA-BUF multiply defined (by USART2.0and main.o)
4.L6200E:SYmbol USART2-init multiply defined (by USART2.0and main.o)
5.L6200E:SYmbol  IQHander multiply defined (by USART2.0and main.o)
6.L6200E:SYmbol USAR2-print multiply defined (by USART2.0and main.o)
报错USART2/3重复定义了吧
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2019-3-18 10:47:47 | 显示全部楼层
彩虹桥 发表于 2019-3-18 10:18
1.L6200E:SYmbol USART2-RX-BUF multiply defined (by USART2.0and main.o)
2.L6200E:SYmbol USART2-TX- ...

对的~~
回复

使用道具 举报

9

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2019-1-3
在线时间
34 小时
 楼主| 发表于 2019-3-18 12:20:57 来自手机 | 显示全部楼层
peng1554 发表于 2019-3-18 10:47
对的~~

怎么解决那?尝试了多种方法还是不行
回复

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14424
金钱
14424
注册时间
2018-8-3
在线时间
1157 小时
发表于 2019-3-18 12:39:36 | 显示全部楼层
实现两板子串口通信的 看下这个帖子:http://www.openedv.com/forum.php ... d=284685&extra=
啊哈~加油!!
回复

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14424
金钱
14424
注册时间
2018-8-3
在线时间
1157 小时
发表于 2019-3-18 12:39:57 | 显示全部楼层
液晶自己加上就行了 不难的
啊哈~加油!!
回复

使用道具 举报

9

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2019-1-3
在线时间
34 小时
 楼主| 发表于 2019-3-18 15:22:00 来自手机 | 显示全部楼层
翼行园子 发表于 2019-3-18 12:39
实现两板子串口通信的 看下这个帖子:http://www.openedv.com/forum.php?mod=viewthread&tid=284685&extra= ...

我的是一个板子上两个串口相互通信,让后通信信息在LCD上打印
回复

使用道具 举报

9

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2019-1-3
在线时间
34 小时
 楼主| 发表于 2019-3-18 15:22:39 来自手机 | 显示全部楼层
翼行园子 发表于 2019-3-18 12:39
实现两板子串口通信的 看下这个帖子:http://www.openedv.com/forum.php?mod=viewthread&tid=284685&extra= ...

两个板子的通信学习了,谢谢分享
回复

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14424
金钱
14424
注册时间
2018-8-3
在线时间
1157 小时
发表于 2019-3-18 16:21:01 | 显示全部楼层
彩虹桥 发表于 2019-3-18 15:22
我的是一个板子上两个串口相互通信,让后通信信息在LCD上打印

一个板子的也简单啊  一样的 初始化对应的串口即可 也是类似的操作的
啊哈~加油!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 13:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表