请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 4264|回复: 2

串口三232使用不了

[复制链接]

2

主题

4

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2019-5-25 17:02:01 | 显示全部楼层 |阅读模式
将例程中的串口和端口稍作更改,程序如下,跳线棒也选择了com3的一边,为何不能实现例程中的发送数据再返回的功能(例程已经试过了,能行)。


#include "usart.h"                 

/*******************************************************************************
* º¯ Êý Ãû         : USART1_Init
* º¯Êý¹¦ÄÜ                   : USART1³õʼ»¯º¯Êý
* Êä    Èë         : bound:²¨ÌØÂÊ
* Êä    ³ö         : ÎÞ
*******************************************************************************/
void USART3_Init(u32 bound)
{
   //GPIO¶Ë¿ÚÉèÖÃ
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);



       
        /*  ÅäÖÃGPIOµÄģʽºÍIO¿Ú */
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//TX                           //´®¿ÚÊä³&oumlA9
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;            //¸´ÓÃÍÆÍìÊä³ö
        GPIO_Init(GPIOB,&GPIO_InitStructure);  /* ³õʼ»¯´®¿ÚÊäÈëIO */
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;//RX                         //´®¿ÚÊäÈ&eumlA10
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;                  //Ä£ÄâÊäÈë
        GPIO_Init(GPIOB,&GPIO_InitStructure); /* ³õʼ»¯GPIO */
       

   //USART1 ³õʼ»¯ÉèÖÃ
        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(USART3, &USART_InitStructure); //³õʼ»¯´®¿Ú1
       
        USART_Cmd(USART3, ENABLE);  //ʹÄÜ´®¿Ú1
       
        USART_ClearFlag(USART3, USART_FLAG_TC);
               
        USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);//¿ªÆôÏà¹ØÖжÏ

        //Usart1 NVIC ÅäÖÃ
        NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;//´®¿Ú1ÖжÏͨµÀ
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;//ÇÀÕ¼ÓÅÏȼ¶3
        NVIC_InitStructure.NVIC_IRQChannelSubPriority =3;                //×ÓÓÅÏȼ¶3
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQͨµÀʹÄÜ
        NVIC_Init(&NVIC_InitStructure);        //¸ù¾ÝÖ¸¶¨µÄ²ÎÊý³õʼ»¯VIC¼Ä´æÆ÷¡¢       
}

/*******************************************************************************
* º¯ Êý Ãû         : USART1_IRQHandler
* º¯Êý¹¦ÄÜ                   : USART1ÖжϺ¯Êý
* Êä    Èë         : ÎÞ
* Êä    ³ö         : ÎÞ
*******************************************************************************/
void USART3_IRQHandler(void)                        //´®¿Ú1ÖжϷþÎñ³ÌÐò
{
        u8 r;
        if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)  //½ÓÊÕÖжÏ
        {
                r =USART_ReceiveData(USART3);//(USART1->DR);        //¶ÁÈ¡½ÓÊÕµ½µÄÊý¾Ý
                USART_SendData(USART3,r);
                while(USART_GetFlagStatus(USART3,USART_FLAG_TC) != SET);
        }
        USART_ClearFlag(USART3,USART_FLAG_TC);
}        




回复

使用道具 举报

1

主题

2

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2019-10-14 22:19:13 | 显示全部楼层
我也遇到这个问题,急求解决办法
回复 支持 反对

使用道具 举报

0

主题

38

帖子

100

积分

禁止发言

积分
100
发表于 2022-3-4 11:21:44 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-3-29 19:38 , Processed in 0.099387 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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