麻烦基于stm32G030C8T6写一个内部晶振,PC13点亮灯的代码。
时间: 2023-05-19 09:00:50 浏览: 30
以下是基于stm32G030C8T6写的内部晶振,PC13点亮灯的代码:
#include "stm32g0xx.h"
int main(void)
{
RCC->CR |= RCC_CR_HSION; // 开启内部高速时钟
while(!(RCC->CR & RCC_CR_HSIRDY)); // 等待时钟稳定
RCC->CFGR |= RCC_CFGR_SW_HSI; // 选择内部高速时钟作为系统时钟
while(!(RCC->CFGR & RCC_CFGR_SWS_HSI)); // 等待时钟切换完成
RCC->APBENR2 |= RCC_APBENR2_GPIOCEN; // 开启GPIOC时钟
GPIOC->MODER &= ~(GPIO_MODER_MODE13_Msk); // PC13设置为输出模式
GPIOC->MODER |= (GPIO_MODER_MODE13_0); // PC13设置为推挽输出
GPIOC->OTYPER &= ~(GPIO_OTYPER_OT13_Msk); // PC13设置为推挽输出
GPIOC->OSPEEDR &= ~(GPIO_OSPEEDR_OSPEED13_Msk); // PC13输出速度设置为低速
GPIOC->PUPDR &= ~(GPIO_PUPDR_PUPD13_Msk); // PC13设置为无上下拉
while(1)
{
GPIOC->BSRR |= GPIO_BSRR_BS13; // PC13点亮
for(int i=0;i<1000000;i++); // 延时
GPIOC->BSRR |= GPIO_BSRR_BR13; // PC13熄灭
for(int i=0;i<1000000;i++); // 延时
}
}