使用蓝桥杯CT117E板子
使用STM32标准库文件
1.初始化gpio端口 使能相应端口的时钟
GPIO_InitTypeDef GPIO_Init_beep;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE);
GPIO_Init_beep.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init_beep.GPIO_Pin = GPIO_Pin_4;
GPIO_Init_beep.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_Init_beep);
从图中可以看到蜂鸣器的PB4接口默认是JNTRST功能
所以需要重映射该接口 将JTRST关闭 使得PB4接口能够当作普通IO口使用
使用了引脚复用功能且APB1(2)里都没有相应的时钟所以需要开启AFIO时钟(个人理解)
2.在主函数中调用初始化函数并设置电平
int main()
{
beep_init();
while(1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_4);
}
}