你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何使用STM32F0的晶振腿做GPIO口  

[复制链接]
damiaa 提问时间:2015-1-22 21:55 /
阅读主题, 点击返回1楼
1 收藏 4 评论27 发布时间:2015-1-22 21:55
27个回答
那就地方 回答时间:2015-2-13 15:57:38
不接晶振,配置成I/O口模式就行了吧
asmhai 回答时间:2017-4-7 23:40:43
GPIO 、INT太多玩法了,一不小心就到不了目的。
zbber 回答时间:2017-4-8 08:46:16
直接GPIO_INIT为输出就可以使用了
愚民点子 回答时间:2017-4-8 10:30:58
void LED8_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);        //ÉèÖÃGPIO ʱÖÓ
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);        //ÉèÖÃGPIO ʱÖÓ
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOF, ENABLE);        //ÉèÖÃGPIO ʱÖÓ

        GPIO_InitStructure.GPIO_Pin =         GPIO_Pin_0 |GPIO_Pin_1 |GPIO_Pin_2 |GPIO_Pin_3
                                                                   |GPIO_Pin_4 |GPIO_Pin_5 |GPIO_Pin_6 |GPIO_Pin_7
                                                                   |GPIO_Pin_8 |GPIO_Pin_9 |GPIO_Pin_10 |GPIO_Pin_11
                                                                   |GPIO_Pin_12|GPIO_Pin_15;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_Init(GPIOA,  &GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 |GPIO_Pin_1 |GPIO_Pin_3 |GPIO_Pin_4 |GPIO_Pin_5 |GPIO_Pin_6 |GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_Init(GPIOB,  &GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 |GPIO_Pin_1;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_Init(GPIOF,  &GPIO_InitStructure);
       
//        GPIO_PinAFConfig(GPIOF,GPIO_PinSource0,GPIO_AF_1);
//        GPIO_PinAFConfig(GPIOF,GPIO_PinSource1,GPIO_AF_1);
}

/****************************************************
º¯Êý¹¦ÄÜ£ºLED¿ª
ÊäÈë²ÎÊý£ºÎÞ
Êä³ö²ÎÊý£ºÎÞ
±¸    ×¢£ºµ÷Óô˺¯ÊýÇ°£¬ÐèÒªÔÚLED.hÐ޸ĺ궨ÒåLEDÒý½Å
****************************************************/
void LED0_OFF(void)
{
        GPIO_ResetBits(GPIOA, GPIO_Pin_8);
}

void LED1_OFF(void)
{
        GPIO_ResetBits(GPIOA, GPIO_Pin_9);
}

void LED2_OFF(void)
{
        GPIO_ResetBits(GPIOA, GPIO_Pin_10);
}

void LED3_OFF(void)
{
        GPIO_ResetBits(GPIOA, GPIO_Pin_11);
}

void LED4_OFF(void)
{
        GPIO_ResetBits(GPIOA, GPIO_Pin_12);
}

void LED5_OFF(void)
{
        GPIO_ResetBits(GPIOA, GPIO_Pin_15);
}

void LED6_OFF(void)
{
        GPIO_ResetBits(GPIOB, GPIO_Pin_3);
}

void LED7_OFF(void)
{
        GPIO_ResetBits(GPIOB, GPIO_Pin_4);
}

void LED8_OFF(void)
{
        GPIO_ResetBits(GPIOB, GPIO_Pin_5);
}

void LED9_OFF(void)
{
        GPIO_ResetBits(GPIOB, GPIO_Pin_6);
}

void LED10_OFF(void)
{
        GPIO_ResetBits(GPIOB, GPIO_Pin_7);
}

void LED11_OFF(void)
{
        GPIO_ResetBits(GPIOF, GPIO_Pin_0);
}

void LED12_OFF(void)
{
        GPIO_ResetBits(GPIOF, GPIO_Pin_1);
}

void LED13_OFF(void)
{
        GPIO_ResetBits(GPIOA, GPIO_Pin_0);
}

void LED14_OFF(void)
{
        GPIO_ResetBits(GPIOA, GPIO_Pin_1);
}

void LED15_OFF(void)
{
        GPIO_ResetBits(GPIOA, GPIO_Pin_2);
}

void LED16_OFF(void)
{
        GPIO_ResetBits(GPIOA, GPIO_Pin_3);
}

void LED17_OFF(void)
{
        GPIO_ResetBits(GPIOA, GPIO_Pin_4);
}

void LED18_OFF(void)
{
        GPIO_ResetBits(GPIOA, GPIO_Pin_5);
}

void LED19_OFF(void)
{
        GPIO_ResetBits(GPIOA, GPIO_Pin_6);
}

void LED20_OFF(void)
{
        GPIO_ResetBits(GPIOA, GPIO_Pin_7);
}

void LED21_OFF(void)
{
        GPIO_ResetBits(GPIOB, GPIO_Pin_0);
}
/****************************************************
º¯Êý¹¦ÄÜ£ºLED¹Ø
ÊäÈë²ÎÊý£ºÎÞ
Êä³ö²ÎÊý£ºÎÞ
±¸    ×¢£ºµ÷Óô˺¯ÊýÇ°£¬ÐèÒªÔÚLED.hÐ޸ĺ궨ÒåLEDÒý½Å
****************************************************/
void LED0_ON(void)
{
        GPIO_SetBits(GPIOA, GPIO_Pin_8);
}

void LED1_ON(void)
{
        GPIO_SetBits(GPIOA, GPIO_Pin_9);
}

void LED2_ON(void)
{
        GPIO_SetBits(GPIOA, GPIO_Pin_10);
}

void LED3_ON(void)
{
        GPIO_SetBits(GPIOA, GPIO_Pin_11);
}

void LED4_ON(void)
{
        GPIO_SetBits(GPIOA, GPIO_Pin_12);
}

void LED5_ON(void)
{
        GPIO_SetBits(GPIOA, GPIO_Pin_15);
}

void LED6_ON(void)
{
        GPIO_SetBits(GPIOB, GPIO_Pin_3);
}

void LED7_ON(void)
{
        GPIO_SetBits(GPIOB, GPIO_Pin_4);
}

void LED8_ON(void)
{
        GPIO_SetBits(GPIOB, GPIO_Pin_5);
}

void LED9_ON(void)
{
        GPIO_SetBits(GPIOB, GPIO_Pin_6);
}

void LED10_ON(void)
{
        GPIO_SetBits(GPIOB, GPIO_Pin_7);
}

void LED11_ON(void)
{
        GPIO_SetBits(GPIOF, GPIO_Pin_0);
}

void LED12_ON(void)
{
        GPIO_SetBits(GPIOF, GPIO_Pin_1);
}

void LED13_ON(void)
{
        GPIO_SetBits(GPIOA, GPIO_Pin_0);
}

void LED14_ON(void)
{
        GPIO_SetBits(GPIOA, GPIO_Pin_1);
}

void LED15_ON(void)
{
        GPIO_SetBits(GPIOA, GPIO_Pin_2);
}

void LED16_ON(void)
{
        GPIO_SetBits(GPIOA, GPIO_Pin_3);
}

void LED17_ON(void)
{
        GPIO_SetBits(GPIOA, GPIO_Pin_4);
}

void LED18_ON(void)
{
        GPIO_SetBits(GPIOA, GPIO_Pin_5);
}

void LED19_ON(void)
{
        GPIO_SetBits(GPIOA, GPIO_Pin_6);
}

void LED20_ON(void)
{
        GPIO_SetBits(GPIOA, GPIO_Pin_7);
}

void LED21_ON(void)
{
        GPIO_SetBits(GPIOB, GPIO_Pin_0);
}

打开STM32F0xx_Clock_Configuration_V1.0.1,点击RUN

打开STM32F0xx_Clock_Configuration_V1.0.1,点击RUN

点击PLL(HSI)...

点击PLL(HSI)...

点击KO

点击KO

复制system_stm32f0xx.c

复制system_stm32f0xx.c

到项目替换system_stm32f0xx.c

到项目替换system_stm32f0xx.c
r23568765 回答时间:2018-4-21 15:03:16
这个方便了
chenke9703 回答时间:2018-4-24 16:28:27
BUCUO
a随遇而安a 回答时间:2018-6-1 14:51:42
用这些的好处是省事,坏处但是不清楚原理。手册有详细描述的,把RCC_CR寄存器HSEON关了就可以。
sing the HSE or LSE oscillator pins as GPIOs
When the HSE or LSE oscillator is switched OFF (default state after reset), the related
oscillator pins can be used as normal GPIOs.
When the HSE or LSE oscillator is switched ON (by setting the HSEON or LSEON bit in the
RCC_CSR register) the oscillator takes control of its associated pins and the GPIO
configuration of these pins has no effect.
When the oscillator is configured in a user external clock mode, only the pin is reserved for
clock input and the OSC_OUT or OSC32_OUT pin can still be used as normal GPIO.
bugyang1 回答时间:2018-7-2 15:03:49
谢谢分享!
KCL 回答时间:2018-7-3 11:19:45
學習了
ZDPHPN 回答时间:2018-7-10 17:19:09
这个“腿”
damiaa 回答时间:2018-7-11 09:02:44
zjlinyf 回答时间:2020-4-8 01:13:22
要积分才能下载
fidjia 回答时间:2020-8-30 20:41:48
感谢分享,用晶振管脚做IO一直读不到电平,查了好久
12

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版