STM32F030应用常见问题

本文介绍了STM32F030中PF0和PF1作为普通IO使用时遇到的问题及解决方法,并解释了为何Cortex-M0不支持Trace功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32F030的PF0、PF1作为普通IO使用时无法正常输出高低电平

如下配置无法正常运行

GPIO_InitTypeDef GPIO_InitStructure;
/* GPIO Periph clock enable */

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOF, ENABLE);

    

/* Configure IO in output pushpull mode */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

GPIO_Init(GPIOF, &GPIO_InitStructure);

GPIO_SetBits(GPIOF, GPIO_Pin_1);

原因:

PF0,PF1在上电初始化过程中默认打开HSE时钟,这两个引脚作为晶振信号输入。

上电—>SystemInit()—>SetSysClock()

—>RCC->CR |= ((uint32_t)RCC_CR_HSEON)/* Enable HSE */

解决办法:

1.在时钟初始化时增加RCC->CR &= ~((uint32_t)RCC_CR_HSEON);

2.在PF0、PF1初始化时增加

GPIO_InitTypeDef GPIO_InitStructure;
    
/*STM32F030使用PF0 PF1,需要关闭HSE时钟*/
RCC->CR &= ~((uint32_t)RCC_CR_HSEON);
    
/* GPIO Periph clock enable */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOF, ENABLE);
    
/* Configure IO in output pushpull mode */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOF, &GPIO_InitStructure);

GPIO_SetBits(GPIOF, GPIO_Pin_1);
STM32F0 强制设置TRACE功能,提示TRACE HW not present

Cortex-M0不支持Trace功能,因为是ARM V6结构,较老,没有ITM功能,所以无论你用Jlink,还是STLink,都不能用到Trace。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值