OpenEdv-开源电子网

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

关于51和STM32串口通信

[复制链接]

4

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-2-14
在线时间
0 小时
发表于 2014-2-24 21:49:12 | 显示全部楼层 |阅读模式
请教大家一个问题,我用51和STM32进行通信,51只用接收数据然后在1602上显示,STM32发送数据。TXD和RXD错开连接,共地。为什么我现在51收不到STM32的数据呢?STM32是用的MINI

51程序:
#include<reg52.h>
#include"1602.h"

unsigned char read_flag =0;
unsigned char i = 0;

void init_com()
{
TMOD |= 0X20;
TH1 = 0XFD;
TL1 = 0XFD;
TR1 = 1;
REN = 1;
SM0 = 0;
SM1 = 1;
EA = 1;
ES = 1;
}

void send_char(unsigned char ch)
{
SBUF = ch;
while(TI==0);
TI = 0;
}

int main()
{
unsigned char ch[5] = {'w','s','d','a'};

init_com();
LCD_init();
while(1)
{
write_com(0x80);
if(read_flag)
{
read_flag = 0;
write_date(ch[i - '0']);
}
}
}

void re_com() interrupt 4
{
if(RI)
{
RI = 0;
i = SBUF;
read_flag = 1;
}
}

STM32程序:
#include "delay.h"
#include "sys.h"
#include "key.h"
#include "usart.h"

 int main(void)
 {
u8 t,i = 0;
u8 ch[5]={'1','2','3','4'};
  SystemInit();
delay_init(72);
        NVIC_Configuration();
   
uart_init(9600);
  KEY_Init();
 
while(1)
{
t = KEY_Scan();
if(t == 1)
{
USART_SendData(USART1,ch);
i++;
if(i>=4)
{
i = 0;
}
}
}  

 }
STM32采用的是原子哥的串口程序,用的是串口一。波特率设置的是9600,usart.c没有改变就是原子哥的程序。请大神指点一哈问题在哪里啊?!!谢谢了





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-2-24 21:59:23 | 显示全部楼层
单独和电脑通信成功了么
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

4

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-2-14
在线时间
0 小时
 楼主| 发表于 2014-2-24 22:06:50 | 显示全部楼层
回复【2楼】745021926:
---------------------------------
单独和电脑通信都成功了。。。
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-2-24 23:33:37 | 显示全部楼层
说起来32的PA9,PA10是兼容5V的,但是51单片机应该不能识别3.3V(3.7V以上才是耗电平),通过MAX232电平转换一下吧
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

4

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-2-14
在线时间
0 小时
 楼主| 发表于 2014-2-24 23:36:30 | 显示全部楼层
回复【4楼】745021926:
---------------------------------
可以了,没有用 232。我是把线接错了。。。现在可以穿数据了 还是感谢了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2017-8-10
在线时间
8 小时
发表于 2017-8-11 00:19:24 | 显示全部楼层
511706987 发表于 2014-2-24 23:36
回复【4楼】745021926:
---------------------------------
可以了,没有用&nbsp;232。我是把线接错了。。 ...

请问楼主是怎么接线的?
回复 支持 反对

使用道具 举报

3

主题

805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3833
金钱
3833
注册时间
2017-3-7
在线时间
1672 小时
发表于 2017-8-11 08:04:21 | 显示全部楼层
RXTX交换就好了
回复 支持 反对

使用道具 举报

4

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
497
金钱
497
注册时间
2022-4-4
在线时间
66 小时
发表于 2022-4-10 14:39:11 | 显示全部楼层
511706987 发表于 2014-2-24 23:36
回复【4楼】745021926:
---------------------------------
可以了,没有用&nbsp;232。我是把线接错了。。 ...

大佬,上面就是全部的程序吗?可以给个联系方式,把全部的程序发我一下吗?
回复 支持 反对

使用道具 举报

2

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2022-3-18
在线时间
13 小时
发表于 2022-4-11 13:08:42 | 显示全部楼层
有按键按下,发送一个数据
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 14:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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