麻烦基于030C8写一个内部晶振,PC13点亮灯的代码。
时间: 2023-05-17 09:04:44 浏览: 36
以下是基于STM32F103C8T6芯片的内部晶振,PC13点亮灯的代码:
#include "stm32f10x.h"
int main(void)
{
RCC->CR |= RCC_CR_HSION; //开启内部高速时钟
while(!(RCC->CR & RCC_CR_HSIRDY)); //等待时钟稳定
RCC->CFGR &= ~RCC_CFGR_SW; //选择HSI作为系统时钟
RCC->CFGR |= RCC_CFGR_SW_HSI;
while(!(RCC->CFGR & RCC_CFGR_SWS)); //等待时钟切换完成
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN; //使能GPIOC时钟
GPIOC->CRH &= ~(GPIO_CRH_MODE13 | GPIO_CRH_CNF13); //PC13配置为推挽输出
GPIOC->CRH |= GPIO_CRH_MODE13_0;
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++); //延时
}
return 0;
}
相关问题
基于030C8写一个内部晶振,PC13点亮灯的代码。
以下是基于STM32F103C8T6芯片的内部晶振,PC13点亮灯的代码:
```c
#include "stm32f10x.h"
int main(void)
{
RCC->CR |= RCC_CR_HSION; // 开启内部高速时钟
while(!(RCC->CR & RCC_CR_HSIRDY)); // 等待时钟稳定
RCC->CFGR &= ~RCC_CFGR_SW; // 选择HSI作为系统时钟
RCC->CFGR |= RCC_CFGR_SW_HSI;
while(!(RCC->CFGR & RCC_CFGR_SWS)); // 等待时钟切换完成
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN; // 开启GPIOC时钟
GPIOC->CRH &= ~GPIO_CRH_MODE13; // PC13输出模式
GPIOC->CRH |= GPIO_CRH_MODE13_0;
GPIOC->CRH &= ~GPIO_CRH_CNF13; // 推挽输出
GPIOC->BSRR |= GPIO_BSRR_BR13; // 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++); // 延时
}
}
```
希望能对您有所帮助!
麻烦基于stm32G030C8T6写一个内部晶振,PC13点亮灯的代码。
以下是基于stm32G030C8T6写一个内部晶振,PC13点亮灯的代码:
```c
#include "stm32g0xx.h"
int main(void)
{
RCC->CR |= RCC_CR_HSION; // 开启内部高速时钟
while(!(RCC->CR & RCC_CR_HSIRDY)); // 等待时钟稳定
RCC->CFGR |= RCC_CFGR_SW_HSI; // 将HSI时钟设置为系统时钟
while(!(RCC->CFGR & RCC_CFGR_SWS_HSI)); // 等待时钟切换完成
RCC->AHBENR |= RCC_AHBENR_GPIOCEN; // 使能GPIOC时钟
GPIOC->MODER |= GPIO_MODER_MODE13_0; // 将PC13设置为输出模式
GPIOC->ODR |= GPIO_ODR_OD13; // 点亮PC13
while(1); // 程序循环
return 0;
}
```