软件IIC_OLED.zip
大小:401.7KB
价格:26积分
下载量:0
评分:
5.0
上传者:marxing
更新日期:2025-09-22

ch32v003f4p6通过软件IIC点亮oled灯

资源文件列表(大概)

文件名
大小
软件IIC_OLED/
-
软件IIC_OLED/.cproject
25.38KB
软件IIC_OLED/.project
1.75KB
软件IIC_OLED/.settings/
-
软件IIC_OLED/.settings/language.settings.xml
1.13KB
软件IIC_OLED/.settings/org.eclipse.core.resources.prefs
128B
软件IIC_OLED/.template
711B
软件IIC_OLED/GPIO_Toggle.wvproj
202B
软件IIC_OLED/obj/
-
软件IIC_OLED/obj/Core/
-
软件IIC_OLED/obj/Core/core_riscv.d
94B
软件IIC_OLED/obj/Core/core_riscv.o
14.89KB
软件IIC_OLED/obj/Core/subdir.mk
1.14KB
软件IIC_OLED/obj/Debug/
-
软件IIC_OLED/obj/Debug/debug.d
4.26KB
软件IIC_OLED/obj/Debug/debug.o
31.18KB
软件IIC_OLED/obj/Debug/subdir.mk
1.12KB
软件IIC_OLED/obj/GPIO_Toggle.elf
106.2KB
软件IIC_OLED/obj/GPIO_Toggle.hex
17.36KB
软件IIC_OLED/obj/GPIO_Toggle.lst
92.42KB
软件IIC_OLED/obj/GPIO_Toggle.map
81.54KB
软件IIC_OLED/obj/makefile
2.28KB
软件IIC_OLED/obj/objects.mk
245B
软件IIC_OLED/obj/Peripheral/
-
软件IIC_OLED/obj/Peripheral/src/
-
软件IIC_OLED/obj/Peripheral/src/ch32v00x_adc.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_adc.o
72.09KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_dbgmcu.d
4.3KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_dbgmcu.o
17.31KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_dma.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_dma.o
28KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_exti.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_exti.o
23.13KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_flash.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_flash.o
87.98KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_gpio.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_gpio.o
44.78KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_i2c.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_i2c.o
62.08KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_iwdg.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_iwdg.o
17.82KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_misc.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_misc.o
19.64KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_opa.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_opa.o
16.28KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_pwr.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_pwr.o
26.76KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_rcc.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_rcc.o
52.62KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_spi.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_spi.o
40.27KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_tim.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_tim.o
168.53KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_usart.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_usart.o
58.27KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_wwdg.d
4.29KB
软件IIC_OLED/obj/Peripheral/src/ch32v00x_wwdg.o
19.93KB
软件IIC_OLED/obj/Peripheral/src/subdir.mk
13.14KB
软件IIC_OLED/obj/sources.mk
610B
软件IIC_OLED/obj/Startup/
-
软件IIC_OLED/obj/Startup/startup_ch32v00x.d
112B
软件IIC_OLED/obj/Startup/startup_ch32v00x.o
6.28KB
软件IIC_OLED/obj/Startup/subdir.mk
1KB
软件IIC_OLED/obj/User/
-
软件IIC_OLED/obj/User/ch32v00x_it.d
4.22KB
软件IIC_OLED/obj/User/ch32v00x_it.o
12.28KB
软件IIC_OLED/obj/User/main.d
4.2KB
软件IIC_OLED/obj/User/main.o
21.84KB
软件IIC_OLED/obj/User/OLED.d
4.25KB
软件IIC_OLED/obj/User/OLED.o
56.53KB
软件IIC_OLED/obj/User/OLED_Font.d
4.21KB
软件IIC_OLED/obj/User/OLED_Font.o
12.14KB
软件IIC_OLED/obj/User/subdir.mk
1.27KB
软件IIC_OLED/obj/User/system_ch32v00x.d
4.23KB
软件IIC_OLED/obj/User/system_ch32v00x.o
23.66KB
软件IIC_OLED/User/
-
软件IIC_OLED/User/ch32v00x_conf.h
1.19KB
软件IIC_OLED/User/ch32v00x_it.c
1.29KB
软件IIC_OLED/User/ch32v00x_it.h
762B
软件IIC_OLED/User/main.c
2.6KB
软件IIC_OLED/User/OLED.c
7.72KB
软件IIC_OLED/User/OLED.h
567B
软件IIC_OLED/User/OLED_Font.c
8.86KB
软件IIC_OLED/User/OLED_Font.h
140B
软件IIC_OLED/User/system_ch32v00x.c
13.06KB
软件IIC_OLED/User/system_ch32v00x.h
1.03KB

资源内容介绍

ch32v003f4p6通过软件IIC点亮oled灯
/********************************** (C) COPYRIGHT ******************************* * File Name : system_ch32v00x.c * Author : WCH * Version : V1.0.0 * Date : 2023/12/26 * Description : CH32V00x Device Peripheral Access Layer System Source File.********************************************************************************** Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.* Attention: This software (modified or not) and binary are used for * microcontroller manufactured by Nanjing Qinheng Microelectronics.*******************************************************************************/#include <ch32v00x>/* * Uncomment the line corresponding to the desired System clock (SYSCLK) frequency (after * reset the HSI is used as SYSCLK source).* If none of the define below is enabled, the HSI is used as System clock source. *///#define SYSCLK_FREQ_8MHz_HSI 8000000//#define SYSCLK_FREQ_24MHZ_HSI HSI_VALUE//#define SYSCLK_FREQ_48MHZ_HSI 48000000//#define SYSCLK_FREQ_8MHz_HSE 8000000//#define SYSCLK_FREQ_24MHz_HSE HSE_VALUE#define SYSCLK_FREQ_48MHz_HSE 48000000#ifdef SYSCLK_FREQ_8MHz_HSI uint32_t SystemCoreClock = SYSCLK_FREQ_8MHz_HSI; #elif defined SYSCLK_FREQ_24MHZ_HSI uint32_t SystemCoreClock = SYSCLK_FREQ_24MHZ_HSI; #elif defined SYSCLK_FREQ_48MHZ_HSI uint32_t SystemCoreClock = SYSCLK_FREQ_48MHZ_HSI; #elif defined SYSCLK_FREQ_8MHz_HSE uint32_t SystemCoreClock = SYSCLK_FREQ_8MHz_HSE; #elif defined SYSCLK_FREQ_24MHz_HSE uint32_t SystemCoreClock = SYSCLK_FREQ_24MHz_HSE; #elif defined SYSCLK_FREQ_48MHz_HSE uint32_t SystemCoreClock = SYSCLK_FREQ_48MHz_HSE; #else uint32_t SystemCoreClock = HSI_VALUE;#endif__I uint8_t AHBPrescTable[16] = {1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8};static void SetSysClock(void);#ifdef SYSCLK_FREQ_8MHz_HSI static void SetSysClockTo_8MHz_HSI(void);#elif defined SYSCLK_FREQ_24MHZ_HSI static void SetSysClockTo_24MHZ_HSI(void);#elif defined SYSCLK_FREQ_48MHZ_HSI static void SetSysClockTo_48MHZ_HSI(void);#elif defined SYSCLK_FREQ_8MHz_HSE static void SetSysClockTo_8MHz_HSE(void);#elif defined SYSCLK_FREQ_24MHz_HSE static void SetSysClockTo_24MHz_HSE(void);#elif defined SYSCLK_FREQ_48MHz_HSE static void SetSysClockTo_48MHz_HSE(void);#endif/********************************************************************* * @fn SystemInit * * @brief Setup the microcontroller system Initialize the Embedded Flash Interface, * the PLL and update the SystemCoreClock variable. * * @return none */void SystemInit (void){ RCC->CTLR |= (uint32_t)0x00000001; RCC->CFGR0 &= (uint32_t)0xF8FF0000; RCC->CTLR &= (uint32_t)0xFEF6FFFF; RCC->CTLR &= (uint32_t)0xFFFBFFFF; RCC->CFGR0 &= (uint32_t)0xFFFEFFFF; RCC->INTR = 0x009F0000; RCC_AdjustHSICalibrationValue(0x10); SetSysClock();}/********************************************************************* * @fn SystemCoreClockUpdate * * @brief Update SystemCoreClock variable according to Clock Register Values. * * @return none */void SystemCoreClockUpdate (void){ uint32_t tmp = 0, pllsource = 0; tmp = RCC->CFGR0 & RCC_SWS; switch (tmp) { case 0x00: SystemCoreClock = HSI_VALUE; break; case 0x04: SystemCoreClock = HSE_VALUE; break; case 0x08: pllsource = RCC->CFGR0 & RCC_PLLSRC; if (pllsource == 0x00) { SystemCoreClock = HSI_VALUE * 2; } else { SystemCoreClock = HSE_VALUE * 2; } break; default: SystemCoreClock = HSI_VALUE; break; } tmp = AHBPrescTable[((RCC->CFGR0 & RCC_HPRE) >> 4)]; if(((RCC->CFGR0 & RCC_HPRE) >> 4) < 8>>= tmp; }}/********************************************************************* * @fn SetSysClock * * @brief Configures the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers. * * @return none */static void SetSysClock(void){RCC->APB2PCENR |= RCC_APB2Periph_GPIOD;GPIOD->CFGLR&=(~0xF0);GPIOD->CFGLR|=0x80;GPIOD->BSHR =0x2;//GPIO_IPD_Unused();#ifdef SYSCLK_FREQ_8MHz_HSI SetSysClockTo_8MHz_HSI();#elif defined SYSCLK_FREQ_24MHZ_HSI SetSysClockTo_24MHZ_HSI();#elif defined SYSCLK_FREQ_48MHZ_HSI SetSysClockTo_48MHZ_HSI();#elif defined SYSCLK_FREQ_8MHz_HSE SetSysClockTo_8MHz_HSE();#elif defined SYSCLK_FREQ_24MHz_HSE SetSysClockTo_24MHz_HSE();#elif defined SYSCLK_FREQ_48MHz_HSE SetSysClockTo_48MHz_HSE();#endif /* If none of the define above is enabled, the HSI is used as System clock. * source (default after reset) */ }#ifdef SYSCLK_FREQ_8MHz_HSI/********************************************************************* * @fn SetSysClockTo_8MHz_HSI * * @brief Sets HSI as System clock source and configure HCLK, PCLK2 and PCLK1 prescalers. * * @return none */static void SetSysClockTo_8MHz_HSI(void){ FLASH->ACTLR &= (uint32_t)((uint32_t)~FLASH_ACTLR_LATENCY); FLASH->ACTLR |= (uint32_t)FLASH_ACTLR_LATENCY_0; RCC->CFGR0 |= (uint32_t)RCC_HPRE_DIV3;}#elif defined SYSCLK_FREQ_24MHZ_HSI/********************************************************************* * @fn SetSysClockTo_24MHZ_HSI * * @brief Sets System clock frequency to 24MHz and configure HCLK, PCLK2 and PCLK1 prescalers. * * @return none */static void SetSysClockTo_24MHZ_HSI(void){ FLASH->ACTLR &= (uint32_t)((uint32_t)~FLASH_ACTLR_LATENCY); FLASH->ACTLR |= (uint32_t)FLASH_ACTLR_LATENCY_0; RCC->CFGR0 |= (uint32_t)RCC_HPRE_DIV1;}#elif defined SYSCLK_FREQ_48MHZ_HSI/********************************************************************* * @fn SetSysClockTo_48MHZ_HSI * * @brief Sets System clock frequency to 48MHz and configure HCLK, PCLK2 and PCLK1 prescalers. * * @return none */static void SetSysClockTo_48MHZ_HSI(void){ uint8_t tmp = 0; tmp = *( uint8_t * )CFG0_PLL_TRIM; if(tmp != 0xFF) { RCC_AdjustHSICalibrationValue((tmp & 0x1F)); } FLASH->ACTLR &= (uint32_t)((uint32_t)~FLASH_ACTLR_LATENCY); FLASH->ACTLR |= (uint32_t)FLASH_ACTLR_LATENCY_1; RCC->CFGR0 |= (uint32_t)RCC_HPRE_DIV1; /* PLL configuration: PLLCLK = HSI * 2 = 48 MHz */ RCC->CFGR0 &= (uint32_t)((uint32_t)~(RCC_PLLSRC)); RCC->CFGR0 |= (uint32_t)(RCC_PLLSRC_HSI_Mul2); RCC->CTLR |= RCC_PLLON; while((RCC->CTLR & RCC_PLLRDY) == 0) { } RCC->CFGR0 &= (uint32_t)((uint32_t)~(RCC_SW)); RCC->CFGR0 |= (uint32_t)RCC_SW_PLL; while ((RCC->CFGR0 & (uint32_t)RCC_SWS) != (uint32_t)0x08) { }}#elif defined SYSCLK_FREQ_8MHz_HSE/********************************************************************* * @fn SetSysClockTo_8MHz_HSE *

用户评论 (0)

发表评论

captcha