打印
[STM32F1]

硬件SPI1用HSE正常,HSI不工作

[复制链接]
788|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zqy876|  楼主 | 2020-7-2 10:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问下STM32F103 硬件SPI1 用外部晶振HSE可以正常工作,系统时钟用内部晶振HSI不工作,什么原因
void SPI1_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        SPI_InitTypeDef SPI_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);//ʹÄÜSPI1ÍâÉèʱÖÓ
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//ʹÄÜGPIOA

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//ËÙ¶È50MHz
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;         //¸´ÓÃÍÆÍìÊä³ö
        GPIO_Init(GPIOA, &GPIO_InitStructure); //³õʼ»¯GPIOA
        GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_7);

        SPI_InitStructure.SPI_Direction = SPI_Direction_1Line_Tx;//Ö»·¢ËÍģʽ
        SPI_InitStructure.SPI_Mode = SPI_Mode_Master;//ÉèÖÃSPI¹¤×÷ģʽ£ºÖ÷»úģʽ
        SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;//ÉèÖÃSPIÊý¾Ý´óС£º8λ֡½á¹¹
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;//´®ÐÐͬ²½Ê±ÖÓ¿ÕÏÐʱSCLKλ¸ßµçƽ
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;//´®ÐÐͬ²½Ê±ÖÓ¿ÕµÚ¶þ¸öʱÖÓÑز¶»ñ
        SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;//NSSÐźÅÓÉÓ²¼þ¹ÜÀí
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;//²¨ÌØÂÊÔ¤·ÖƵֵ£º²¨ÌØÂÊÔ¤·ÖƵֵΪ4
        SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;//Êý¾Ý´«Êä¸ßλÏÈÐÐ
        SPI_InitStructure.SPI_CRCPolynomial = 7;//CRCÖµ¼ÆËãµÄ¶àÏîʽ
        SPI_Init(SPI1,&SPI_InitStructure);//³õʼ»¯SPI
        SPI_Cmd(SPI1, ENABLE);//ʹÄÜSPI
}

使用特权

评论回复
沙发
sonicll| | 2020-7-2 10:31 | 只看该作者
问题估计不在你的SPI代码上,可能和你使用HSI配置系统时钟的代码有关,最好把你用HSI配系统时钟的代码贴出来

使用特权

评论回复
板凳
hjl2832| | 2020-7-2 13:11 | 只看该作者
你开HSE时,把HSI关掉了吧,看看RCC的配置

使用特权

评论回复
地板
香水城| | 2020-7-3 23:35 | 只看该作者
是的,检查下基于HSI的时钟配置。如果可能,尽量使用stm32cubemx进行配置。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

88

帖子

1

粉丝