314|8

30

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

极海APM32M3514串口使用PF0和PF1问题 [复制链接]

 

各位高手及极海的FAE,我在使用极海的APM32M3514串口时遇到如下问题,

我使用的板子根据硬件电路将串口的引脚改为PF0和PF1的串口时,开启中串口中断,代码跑飞,引脚配置如下:

 

在初始化代码中,只要把串口1中断打开,程序跑飞,使用的是COM1 初始化如下:

void APM_MINI_COMInit(COM_T COM)
{
    GPIO_Config_T gpioConfig;
    USART_Config_T usartConfigStruct;
    /* Enable GPIO clock */
    RCM_EnableAHBPeriphClock(COM_TX_PORT_CLK[COM] | COM_RX_PORT_CLK[COM]);

    /* Enable COM1 or COM2 clock */
    if (COM == COM1)
    {
        RCM_EnableAPB2PeriphClock(COM_USART_CLK[COM]);
    }
    else
    {
        RCM_EnableAPB1PeriphClock(COM_USART_CLK[COM]);
    }

    /* Connect PXx to USARTx_Tx */
    GPIO_ConfigPinAF(COM_TX_PORT[COM], COM_TX_PIN_SOURCE[COM], COM_TX_AF[COM]);

    /* Connect PXx to USARTx_Rx */
    GPIO_ConfigPinAF(COM_RX_PORT[COM], COM_RX_PIN_SOURCE[COM], COM_RX_AF[COM]);

    /* Configure USART Tx as alternate function push-pull */
    gpioConfig.mode = GPIO_MODE_AF;
    gpioConfig.pin = COM_TX_PIN[COM];
    gpioConfig.speed = GPIO_SPEED_50MHz;
    gpioConfig.outtype = GPIO_OUT_TYPE_PP;
    gpioConfig.pupd = GPIO_PUPD_PU;
    GPIO_Config(COM_TX_PORT[COM], &gpioConfig);

    /* Configure USART Rx as input floating */
    gpioConfig.pin = COM_RX_PIN[COM];
    GPIO_Config(COM_RX_PORT[COM], &gpioConfig);

    /* MINI_USARTs 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
    */

    usartConfigStruct.baudRate = 115200;
    usartConfigStruct.mode     = USART_MODE_TX_RX;
    usartConfigStruct.hardwareFlowCtrl = USART_FLOW_CTRL_NONE;
    usartConfigStruct.parity   = USART_PARITY_NONE;
    usartConfigStruct.stopBits =  USART_STOP_BIT_1;
    usartConfigStruct.wordLength = USART_WORD_LEN_8B;
    USART_Config(COM_USART[COM], &usartConfigStruct);

    /* Enable USART_Interrupt_RXBNEIE */
    USART_EnableInterrupt(COM_USART[COM], USART_INT_RXBNEIE);

    if (COM_USART[COM] == USART1)
    {
        NVIC_EnableIRQRequest(USART1_IRQn, 2);
    }
    else if (COM_USART[COM] == USART2)
    {
        NVIC_EnableIRQRequest(USART2_IRQn, 3);
    }

    /* Enable USART */
//        USART_Enable(USART1);
    USART_Enable(COM_USART[COM]);
        
}

出错时调试报错如下:

 请问一下谁知道这是什么原因

最新回复

nmg
极海AE回复:Uart 和外部晶振复用,通过电阻选择,可以查看原理图选择。使用内部时钟,主频可以达到64Mhz   详情 回复 发表于 2024-12-10 09:49
点赞 关注
 
 

回复
举报

23

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

不开中断,串口能用么

 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

电机开发板PF0和PF1接的是晶振,你这样可不得跑飞吗,看了一下官方就没有留出打印口,那我想知道测试总要打印数据吧,他们是怎么打印的呢????

点评

用内部晶振,他们CASE使用了串口,应该切换到内部晶振,    详情 回复 发表于 2024-12-9 21:18
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

4
 
IllusionXX 发表于 2024-12-9 10:51 电机开发板PF0和PF1接的是晶振,你这样可不得跑飞吗,看了一下官方就没有留出打印口,那我想知道测试总要打 ...

而且他硬件原理图,连接串口的电阻是没有焊的,接晶振的电阻是焊上的,看不懂这是要干嘛,也没有文档说明,既然打印不了,干嘛要预留一个打印口呢

点评

这设计太逆天了,不说我都没发现连的是晶振,我还隔这检查半天程序  详情 回复 发表于 2024-12-9 11:04
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

5
 
IllusionXX 发表于 2024-12-9 10:54 而且他硬件原理图,连接串口的电阻是没有焊的,接晶振的电阻是焊上的,看不懂这是要干嘛,也没有文档说明 ...

这设计太逆天了,不说我都没发现连的是晶振,我还隔这检查半天程序

 
 
 

回复

30

帖子

2

TA的资源

一粒金砂(中级)

6
 

不说我还真没有发现PF0,PF1接的晶振,那串口就没有使用了,我看PA2,PA3,PA9和PA10都已经被使用了,看到CH340上接的PF0和PF1,还跑去把引脚配置后,就跑飞了。那要用串口只能使用内部晶振了!

不过这硬件设计有点新颖。

让我措手不及了

谢谢各位了

 

 
 
 

回复

30

帖子

2

TA的资源

一粒金砂(中级)

7
 
IllusionXX 发表于 2024-12-9 10:51 电机开发板PF0和PF1接的是晶振,你这样可不得跑飞吗,看了一下官方就没有留出打印口,那我想知道测试总要打 ...

用内部晶振,他们CASE使用了串口,应该切换到内部晶振,

 

点评

切换到内部晶振,也是8MHz,串口调到PF0打印,可以打印了,但是电机跑不起来了,不知道是不是有什么影响,他们这个太逆天了  详情 回复 发表于 2024-12-10 08:34
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

8
 
lang518899 发表于 2024-12-9 21:18 用内部晶振,他们CASE使用了串口,应该切换到内部晶振,  

切换到内部晶振,也是8MHz,串口调到PF0打印,可以打印了,但是电机跑不起来了,不知道是不是有什么影响,他们这个太逆天了

点评

nmg
极海AE回复:Uart 和外部晶振复用,通过电阻选择,可以查看原理图选择。使用内部时钟,主频可以达到64Mhz  详情 回复 发表于 2024-12-10 09:49
 
 
 

回复

5244

帖子

236

TA的资源

管理员

9
 
IllusionXX 发表于 2024-12-10 08:34 切换到内部晶振,也是8MHz,串口调到PF0打印,可以打印了,但是电机跑不起来了,不知道是不是有什么影响 ...

极海AE回复:Uart 和外部晶振复用,通过电阻选择,可以查看原理图选择。使用内部时钟,主频可以达到64Mhz

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

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

随便看看
查找数据手册?

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-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表