0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过CH32V103 PA8引脚对外提供时钟输出

CHANBAEK 来源:CSDN-借过风景 作者:CSDN-借过风景 2023-01-31 14:33 次阅读

CH32V103系列是以青稞V3A处理器为核心的32位通用MCU,该处理器是基于RISC-V开源指令集设计。 片上集成了时钟安全机制、多级电源管理、通用DMA控制器。 此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。

本章教程为MCO时钟输出,主要通过CH32V103 PA8引脚对外提供时钟,相当于一个有源晶振。

1、RCC简介及相关函数介绍

RCC:复位与时钟控制器(Reset Clock Controller)缩写。 控制器根据电源区域的划分以及应用中的外设功耗管理考虑,提供了不同的复位形式以及可配置的时钟树结构。 控制器提供了3种复位形式:电源复位、系统复位和后备区域复位。 三种不同的时钟源可被用来驱动系统时钟(SYSCLK),包括HSE振荡器时钟、HSI振荡器时钟、PLL时钟。

MCO是microcontroller clock output的缩写,是微控制器时钟输出引脚,在 CH32V103系列中由PA8复用所得,主要作用是可以对外提供时钟,相当于一个有源晶振。 MCO的时钟来源可以是:PLLCLK/2、HSI、HSE、SYSCLK,具体选哪个由时钟配置寄存器0的位 26-24:MCO[2:0]决定。 除了对外提供时钟这个作用之外,我们还可以通过示波器监控MCO引脚的时钟输出来验证我们的系统时钟配置是否正确。

关于CH32V103 RCC具体信息,可参考CH32V103应用手册。 CH32V103 RCC标准库函数具体内容如下:

poYBAGPYtXOAFOKbAAGOEVfu84Y076.png

1.1、无效RCC_DeInit(无效)

功 能:将RCC时钟配置重置为默认重置状态。

输 入:无

1.2、无效RCC_HSEConfig(uint32_t RCC_HSE)

功 能:配置外部高速振荡器(HSE)。

输 入:RCC_HSE:RCC_HSE_OFF:HSE振荡器关闭。 RCC_HSE_ON:HSE振荡器打开。 RCC_HSE_Bypass:外部时钟绕过HSE振荡器。

1.3、错误状态RCC_WaitForHSEStartUp(无效)

功 能:等待HSE启动。

输 入:无

1.4、无效RCC_AdjustHSICalibrationValue(uint8_t HSIC校准值)

功 能:调整内部高速振荡器(HSI)校准值。

输 入:HSICalibrationValue:指定校准微调值。

1.5、无效RCC_HSICmd(功能状态新状态)

功 能:启用或禁用内部高速振荡器(HSI)。

输 入:NewState:启用或禁用。

1.6、无效RCC_PLLConfig(uint32_t RCC_PLLSource、uint32_t RCC_PLLMul)

功 能:配置PLL时钟源和倍增因子。

输 入:RCC_PLLSource:指定PLL入口时钟源。 RCC_PLLMul:指定PLL乘法因子。

1.7、无效RCC_PLLCmd(功能状态新状态)

功 能:启用或禁用PLL。

输 入:NewState:启用或禁用。

1.8、无效RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource)

功 能:配置系统时钟(SYSCLK)。

输 入:RCC_SYSCLKSource:指定用作系统时钟的时钟源。

1.9、uint8_t RCC_GetSYSCLKSource(无效)

功 能:返回用作系统时钟的时钟源。

输 入:无

1.10、无效RCC_HCLKConfig(uint32_t RCC_SYSCLK)

功 能:配置AHB时钟(HCLK)。

输 入:RCC_SYSCLK:定义AHB时钟分频器。 此时钟源于系统时钟(SYSCLK)。

1.11、无效RCC_PCLK1Config(uint32_t RCC_HCLK)

功 能:配置低速APB时钟(PCLK1)。

输 入:RCC_HCLK:定义APB1时钟分频器。 该时钟源于AHB时钟(HCLK)。

1.12、无效RCC_ITConfig(uint8_t RCC_IT,功能状态新状态)

功 能:启用或禁用指定的RCC中断。

输 入:NewState:启用或禁用。

1.13、无效RCC_USBCLKConfig(uint32_t RCC_USBCLKSource)

功 能:配置USB时钟(USBCLK)。

输 入:RCC_USBCLKSource:指定USB时钟源。该时钟源于锁相环输出。

1.14、void RCC_ADCCLKConfig(uint32_t RCC_PCLK2)

功 能:配置ADC时钟(ADCCLK)。

输 入:RCC_PCLK2:定义ADC时钟分频器。该时钟源于APB2时钟(PCLK2)。

1.15、void RCC_LSEConfig(uint8_t RCC_LSE)

功 能:配置外部低速振荡器(LSE)。

输 入:RCC_LSE:指定LSE的新状态。

1.16、void RCC_LSICmd(FunctionalState NewState)

功 能:启用或禁用内部低速振荡器(LSI)。

输 入:NewState:启用或禁用。

1.17、void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource)

功 能:一旦选择了RTC时钟,除非重置备份域,否则无法更改。

输 入:RCC_RTCCLKSource:指定RTC时钟源。

1.18、void RCC_RTCCLKCmd(FunctionalState NewState)

功 能:只有在使用RCC_RTCCLKConfig函数选择了RTC时钟之后,才能使用此函数。

输 入:NewState:启用或禁用。

1.19、void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)

功 能:返回不同片内时钟的频率。

输 入:RCC_Clocks:指向将保存时钟频率的RCC_ClocksTypeDef结构的指针。

1.20、void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState)

功 能:启用或禁用AHB外围时钟。

输 入:RCC_AHBPeriph:指定AHB外围设备以关闭其时钟。NewState:启用或禁用。

1.21、void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)

功 能:启用或禁用高速APB(APB2)外围时钟。

输 入:RCC_APB2Periph:指定APB2外围设备来关闭其时钟。NewState:启用或禁用。

1.22、void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)

功 能:强制或解除高速APB(APB2)外围设备复位。

输 入:RCC_APB2Periph:指定要重置的APB2外围设备。NewState:启用或禁用。

1.23、void RCC_BackupResetCmd(FunctionalState NewState)

功 能:强制或释放备份域重置。

输 入:NewState:启用或禁用。

1.24、void RCC_ClockSecuritySystemCmd(FunctionalState NewState)

功 能:启用或禁用时钟安全系统。

输 入:NewState:启用或禁用。

1.25、void RCC_MCOConfig(uint8_t RCC_MCO)

功 能:选择要在MCO引脚上输出的时钟源。

输 入:RCC_MCO:指定要输出的时钟源。

1.26、FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG)

功 能:检查是否设置了指定的RCC标志。

输 入:RCC_FLAG:指定要检查的标志。

1.27、void RCC_ClearFlag(void)

功 能:清除RCC重置标志。

输 入:无

1.28、ITStatus RCC_GetITStatus(uint8_t RCC_IT)

功 能:检查指定的RCC中断是否发生。

输 入:RCC_IT:指定要检查的RCC中断源。

1.29、void RCC_ClearITPendingBit(uint8_t RCC_IT)

功 能:清除RCC的中断挂起位。

输 入:RCC_IT:指定要清除的中断挂起位。

以上函数在程序中直接调用即可。

2、硬件设计

RCC为单片机内部资源,无需进行硬件连接。

3、软件设计

本章教程将PA8复用为MCO引脚对外提供时钟输出,并通过示波器验证系统始终是否正确。其具体程序如下:

pYYBAGPYtXKAM2HgAACESFU9UzQ941.png

poYBAGPYtXKAfjxRAABvHNgtLl8043.png

4、下载验证

将编译好的程序下载到开发板并复位,利用示波器检测MCO引脚PA8时钟输出频率

poYBAGPYtXKAXJAZAAaXwJmXBec138.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6034

    文章

    44552

    浏览量

    634440
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17117

    浏览量

    350927
  • RCC
    RCC
    +关注

    关注

    0

    文章

    93

    浏览量

    26928
  • RISC-V
    +关注

    关注

    44

    文章

    2270

    浏览量

    46117
  • CH32V103
    +关注

    关注

    1

    文章

    13

    浏览量

    1007
  • ch32
    +关注

    关注

    0

    文章

    73

    浏览量

    637
收藏 人收藏

    评论

    相关推荐

    STOP模式下STM32F103C8PA8不能唤醒是什么原因?

    在进入STOP模式前我对外引脚作了配置,代码如下:但PA0引脚的上升沿可以唤醒,PA8引脚的上
    发表于 09-17 09:13

    为什么STM32G0B0VE的PA8引脚会反向输出信号呢

    ,我看到引脚 PA8 跟随引脚 PA9 但反向输出,所以当 PA9 上升时,
    发表于 12-09 08:09

    CH32V103基础教程8-PWM输出

    本章教程使用定时器1通道1(PA8),通过PA8引脚产生PWM控制LED灯LED1的亮度。1、PWM简介及相关函数介绍脉冲宽度调制(PWM)是一种模拟控制方式,其是利用微处理器的数字
    发表于 04-14 16:16

    CH32V103基础教程9-输入捕获

    本章教程通过CH32V103开发板PA8引脚检测PWM脉宽和周期,并通过串口调试助手打印显示。1、输入捕获简介及相关函数介绍输入捕获模式是定
    发表于 04-14 16:17

    CH32V103基础教程18-RCC

    本章教程为MCO时钟输出,主要通过CH32V103 PA8引脚
    发表于 04-18 15:43

    CH32V103基础教程60-TIM-DMA

    本章教程主要使用DMA通过TIM1_CH1(PA8)引脚输出PWM。 1、TIM简介及相关函数介绍关于定时器(PWM
    发表于 04-27 17:02

    CH32V103基础教程77-USART-指令控制LED灯

    ,在此不再赘述。 2、硬件设计由CH32V103系列MCU的串口1在调试文件中被用于调试打印,因此本次教程使用串口2进行收发验证。由CH32V103数据手册可知,串口2对应引脚PA2
    发表于 05-08 15:55

    CH32V103基础教程78-USART-空闲中断

    ,在此不再赘述。 2、硬件设计由于CH32V103系列MCU的串口1在debug文件中被用于调试打印,因此本次教程使用串口2进行收发验证。由CH32V103数据手册可知,串口2对应引脚PA
    发表于 05-08 15:57

    CH32V103基础教程81-中断嵌套

    参考CH32V103应用手册。 2、硬件设计本章教程主要进行两级中断嵌套测试,主要通过PA0、PA1引脚接地产生中断从而执行中断服务函数,连
    发表于 05-09 16:51

    CH32V103基础教程95-PWM驱动蜂鸣器

    CH32V103应用手册。 2、硬件设计本章教程使用PWM播放音乐,可直接与蜂鸣器连接。CH32V103开发板与蜂鸣器的连接方式如下:· CH32V103开发板的GND引脚与喇叭的G
    发表于 05-11 16:15

    CH32V103基础教程98-RTC-脉冲

    分析仪进行脉冲采集,CH32V103测试板与输出分析仪连接法如下:· CH32V103开发板的GND引脚与总图分析仪的GND引脚连接·
    发表于 05-12 16:34

    RISC-V MCU应用开发教程之CH32V103

    讲解,涉及的相关寄存器等部分可参考沁恒官方提供的资料。CH32V103数据手册:CH32V103DS0.PDFCH32V103应用手册:CH32xRM.PDFCH32V103官方例程:
    发表于 11-18 16:21 18次下载
    RISC-<b class='flag-5'>V</b> MCU应用开发教程之<b class='flag-5'>CH32V103</b>

    STM32F103 PA8不能输出PWM波问题

    在调试STM32F103单片机输出PWM波时,单独测试PA8PA11输出PWM波(也就是TIM1_CH
    发表于 12-02 19:36 19次下载
    STM32F<b class='flag-5'>103</b> <b class='flag-5'>PA8</b>不能<b class='flag-5'>输出</b>PWM波问题

    ch32v103应用教程 ch32v103c8t6兼容 ch32v103c8t6烧录器

    ch32v103应用教程 ch32v103c8t6兼容 ch32v103c8t6烧录器 ch32v103c8t6编程器 CH32V103应用
    的头像 发表于 08-22 15:19 1883次阅读

    ch32v103与stm32f103的区别

    ch32v103与stm32f103的区别  Ch32v103与STM32f103是两种不同的芯片,虽然它们都是基于ARM Cortex-M3内核的32位微控制器,但它们在硬件配置、功
    的头像 发表于 08-22 15:49 2503次阅读