OpenEdv-开源电子网

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

2个STM32实习串口通信 就是不好使 麻烦原子哥看看 那里处问题了

[复制链接]

4

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2012-12-7
在线时间
17 小时
发表于 2013-3-24 14:03:29 | 显示全部楼层 |阅读模式
问题:想实现2个STM32串口通讯,实现一个发数据,一个接数据,把 2个STM32的TX连RX,RX连TX。数据就是接不到。
接收程序:
#include "stm32f10x_lib.h"
#include"stdio.h"
void RCC_Configuaration(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE);      //使能USART1,GPIOA时钟 
}
void NVIC_Configuration(void)
{
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
}
void NVIC_Init_Configuration(void)
NVIC_InitTypeDef  NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel; 
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;                //抢占优先级3 
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;                    //子优先级3 
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;        //IRQ 通道使能 
NVIC_Init(&NVIC_InitStructure);                                                          //中断优先级初始化
}
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
GPIO_Init(GPIOA, &GPIO_InitStructure); 

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;                                  //USART1_RX  A.10 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  //浮空输入 
GPIO_Init(GPIOA, &GPIO_InitStructure);
 
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_5);   //灭
// GPIO_ResetBits(GPIOB,GPIO_Pin_5);                                      //初始化PA10
}
void USART_Configuration(u32 bound)
{
USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = bound;                              //波特率设置 
USART_InitStructure.USART_WordLength = USART_WordLength_8b; //字长为8位 
USART_InitStructure.USART_StopBits = USART_StopBits_1;                //一个停止位 
USART_InitStructure.USART_Parity = USART_Parity_No;                      //无奇偶校验位 
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;          //无硬件数据流控制 
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//收发模式 
USART_Init(USART1, &USART_InitStructure);                    //初始化串口 
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);   //开启接收中断
USART_Cmd(USART1, ENABLE);
}
void Uart1_PutChar(u8 ch)  //发送函数
{
USART_SendData(USART1,ch);
while(USART_GetITStatus(USART1,USART_FLAG_TXE) == SET);
}
void delay(u32 z)
{
u32 x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
int main()
{
vu32 i;
RCC_Configuaration();
NVIC_Configuration();
NVIC_Init_Configuration();
GPIO_Configuration();
USART_Configuration(1200);
while(1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_5); //亮
}
}
void USART1_IRQHandler(void) //中断函数
{
u8 temp_trx;
GPIO_ResetBits(GPIOB,GPIO_Pin_5); //LED灭
if(USART_GetITStatus(USART1,USART_IT_RXNE) !=RESET )
{
temp_trx = USART_ReceiveData(USART1);
delay(1);
Uart1_PutChar(temp_trx);
}
}

努力努力,永不放弃!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2012-12-7
在线时间
17 小时
 楼主| 发表于 2013-3-24 19:06:30 | 显示全部楼层
别沉啊!!!愁死我了。。。
努力努力,永不放弃!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-24 21:34:10 | 显示全部楼层
就贴一堆代码说不行...
你 自己也分析下为什么不行啊!
首先,你串口通信,自己能写代码了么?
你能和电脑通信么?
满足前面的前提下,你再做你这个。
非得一下就搞个复杂的东西,然后就发现有问题,然后就愁死了...
我看着你这一堆代码,更愁....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2012-12-7
在线时间
17 小时
 楼主| 发表于 2013-3-25 13:25:58 | 显示全部楼层
好吧  首先 能和电脑通信  其次  32和32就不行了  我用2个32通信 同时用串口调试助手看能不能收到数据  可是 就是收不到。。。我在好好看看
努力努力,永不放弃!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-25 15:52:15 | 显示全部楼层
回复【4楼】红色沙漏:
---------------------------------
2个串口单独的,都能和电脑通信么?
如果可以,那估计你对接的时候,线接错了吧!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2012-12-7
在线时间
17 小时
 楼主| 发表于 2013-3-25 18:15:47 | 显示全部楼层
都能和电脑通信,对接的时候,需要把战舰开发板上的跳冒拔下来吧,32的PA9接另一个32的PA10,我是这样接的。。。。
努力努力,永不放弃!
回复 支持 反对

使用道具 举报

4

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2012-12-7
在线时间
17 小时
 楼主| 发表于 2013-3-25 18:17:12 | 显示全部楼层
原子哥 我再弄弄 你给指个方向就行!感觉我那里出问题了 你就说  我回头再看看 毕竟才刚学 出错是难免的  谢谢原子哥!
努力努力,永不放弃!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-25 20:53:10 | 显示全部楼层
回复【6楼】红色沙漏:
---------------------------------
共地了吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-22 12:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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