OpenEdv-开源电子网

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

stm32f103c8t6最小核心板 关于串口传输 跪求大神指导

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2017-5-26
在线时间
0 小时
发表于 2017-5-26 14:56:49 | 显示全部楼层 |阅读模式
1金钱
我想在stm32f103c8t6最小核心板上实现USART1接受数据后产生中断,用USART2发送;USART2接受数据后产生中断,用USART1发送。编译没有错误,但是USART2一直通讯不了。跪求大神指导。

#include "stm32f10x.h"


void My_USART_Init(void)
{

GPIO_InitTypeDef GPIO_InitStructure;        
USART_InitTypeDef USART_InitStructure;        
NVIC_InitTypeDef NVIC_InitStructure;        
        
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);
        
        
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;        
GPIO_Init(GPIOA,&GPIO_InitStructure);        
        
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;        
GPIO_Init(GPIOA,&GPIO_InitStructure);               

        
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;        
GPIO_Init(GPIOA,&GPIO_InitStructure);        
        
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;        
GPIO_Init(GPIOA,&GPIO_InitStructure);               
        
        
USART_InitStructure.USART_BaudRate=9600;
USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;
USART_InitStructure.USART_Parity=USART_Parity_No;
USART_InitStructure.USART_StopBits=USART_StopBits_1;
USART_InitStructure.USART_WordLength=USART_WordLength_8b;
USART_Init(USART1,&USART_InitStructure);        

USART_InitStructure.USART_BaudRate=9600;
USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;
USART_InitStructure.USART_Parity=USART_Parity_No;
USART_InitStructure.USART_StopBits=USART_StopBits_1;
USART_InitStructure.USART_WordLength=USART_WordLength_8b;
USART_Init(USART2,&USART_InitStructure);
        
USART_Cmd(USART1,ENABLE);        //使能串口1
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//打开接受中断

USART_Cmd(USART2,ENABLE);        //使能串口2
USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);//打开接受中断



NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
NVIC_Init(&NVIC_InitStructure);

NVIC_InitStructure.NVIC_IRQChannel=USART2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=2;
NVIC_Init(&NVIC_InitStructure);
}

void USART1_IRQHandler(void)
{
        
        u8 res1;
        
        if(USART_GetITStatus(USART1,USART_IT_RXNE))
        {
        res1=USART_ReceiveData(USART1);
        USART_SendData(USART2,res1);
        }
        


}

void USART2_IRQHandler(void)
{
        
        
        u8 res2;

        if(USART_GetITStatus(USART2,USART_IT_RXNE))
        {
        res2=USART_ReceiveData(USART2);
        USART_SendData(USART1,res2);
        }
        

}


int main(void)
{        
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        My_USART_Init();
        while(1);
         
}

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-5-30 16:35:47 | 显示全部楼层
参考我们的串口2例程,先搞通串口2发送数据正常。
回复

使用道具 举报

1

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2016-10-12
在线时间
18 小时
发表于 2017-5-31 15:10:07 | 显示全部楼层
你这样写有问题的的,你是想接一个字节就发一个字节,这样你在发送这一个字节时很有可能被接收中断打断吧,可以从串口1把数据全部接过来存到数组里,然后再用串口2把这个数组发送出去就可以了
回复

使用道具 举报

11

主题

179

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2016-7-19
在线时间
168 小时
发表于 2017-5-31 16:39:35 | 显示全部楼层
线接对没有?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-20 18:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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