9837|6

40

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

STM32F107VCT6学习中,重映射这卡住了... [复制链接]

大侠们,求重映射的详解和范例啊,小弟拿个开发板学到这卡住了...
此帖出自stm32/stm8论坛

最新回复

补充下,这个用的是PD和PD9  详情 回复 发表于 2012-4-20 15:57
点赞 关注
 

回复
举报

2131

帖子

0

TA的资源

至上芯片

沙发
 

回复 楼主 霜天 的帖子

GPIO_PinRemapConfig(GPIO_FullRemap_USART3, ENABLE); //Uart3 pin重映射到PD8 PD9
这个例子说明你的串口引脚从默认的PB10 PB11 重映射到PD8 PD9那么你在板子上的连接就是PD8 PD9 而PB10 PB11可以做别的用处。

不知道楼主在哪里卡住了呢,你想重映射哪个引脚的哪个功能呢?
此帖出自stm32/stm8论坛
 
个人签名处处留心皆学问!
 

回复

40

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

回复 沙发 daicheng 的帖子

我看着板子上USART3接口用的是485通信,三个引脚分别是PD8,PD9,PD7.这样的情况我不懂,对于第三个引脚是不是也要设置的,那样的话程序还要加点什么?纯粹新手...请见谅!
此帖出自stm32/stm8论坛
 
 

回复

2131

帖子

0

TA的资源

至上芯片

4
 
咱们就以串口3为例子吧:
GPIO_PinRemapConfig(GPIO_FullRemap_USART3, ENABLE);  使能串口3映射
#define GPIO_PartialRemap_USART3   ((u32)0x00140010)   部分映射
#define GPIO_FullRemap_USART3      ((u32)0x00140030)    全部映射
看下面的图:


如果说的不好可以在讨论一下
此帖出自stm32/stm8论坛
 
个人签名处处留心皆学问!
 
 

回复

40

帖子

0

TA的资源

一粒金砂(中级)

5
 

回复 4楼 daicheng 的帖子

说的很好的呀,这个刚研究出来了,而且貌似后面应该还有些配置设置。我是这么设置的,不知道对不对:
  GPIO_InitStructure.GPIO_Pin =GPIO_Pin_7;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOD, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin =GPIO_Pin_8;//tx
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
               
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //RX
    GPIO_InitStructure.GPIO_Mode =  GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
可这么设置也还是不能收发数据,同事说应该还有个485的方向控制要控制,这个是怎么配置的,请教牛人
此帖出自stm32/stm8论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

6
 

我的串口3的配置

void USART3_Configuration(uint32_t UART_baud) //波特率,如115200
{   
        USART_InitTypeDef USART_InitStructure;
         GPIO_PinRemapConfig(GPIO_FullRemap_USART3,ENABLE);
        /* USARTx configured as follow:
              - BaudRate = 115200 baud  
              - Word Length = 8 Bits
              - One Stop Bit
              - No parity
              - Hardware flow control disabled (RTS and CTS signals)
              - Receive and transmit enabled
        */
        USART_InitStructure.USART_BaudRate = UART_baud;//115200;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;
        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;       
        USART3_COMInit(&USART_InitStructure);       
}

void USART3_COMInit(USART_InitTypeDef* USART_InitStruct)
{
                GPIO_InitTypeDef GPIO_InitStructure;
               
                /* Enable GPIO clock */
                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD| RCC_APB2Periph_AFIO, ENABLE);         //使能串口所有GPIO模块时钟,并使能AFIO模块时钟
               
                /* Enable UART clock */               
                RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);         //使能串口模块时钟
               
                /* Configure USART Tx as alternate function push-pull */
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                //设置TX引脚
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;         //复用推挽输出
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                GPIO_Init(GPIOD, &GPIO_InitStructure);
               
                /* Configure USART Rx as input floating */
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;                //设置RX引脚
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;                //浮空输入
                GPIO_Init(GPIOD, &GPIO_InitStructure);
                       
                /* USART configuration */
                USART_Init(USART3, USART_InitStruct);                //初始化USART
               
                /* Enable USART */
                USART_Cmd(USART3, ENABLE);                //使能串口模块
}

波特率119200以上就会出现乱码,牛人说可能是我的485线太长了,9600一下没问题
此帖出自stm32/stm8论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

7
 

回复 6楼 yueni_zhao 的帖子

补充下,这个用的是PD和PD9
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表