| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #include "clock.h"
- #include "gd32f3x0.h"
- extern uint32_t SystemCoreClock;
- void delay_us(uint32_t us){
- uint32_t insr_num = (SystemCoreClock /40000000 + 1) * us;// 1000000;
- while(insr_num-->0);
- }
- uint32_t get_sys_clock(void){
- return SystemCoreClock;
- }
- uint32_t get_ahb_clock(void){
- return rcu_clock_freq_get(CK_AHB);
- }
- uint32_t get_apb1_clock(void){
- return rcu_clock_freq_get(CK_APB1);
- }
- uint32_t get_apb2_clock(void){
- return rcu_clock_freq_get(CK_APB2);
- }
- uint32_t get_adc_clock(void){
- return rcu_clock_freq_get(CK_ADC);
- }
- uint32_t get_apb1_timer_clock(void){
- uint32_t apb1psc = 0U;
- apb1psc = RCU_CFG0;
- uint32_t div = GET_BITS(apb1psc, 8, 10);
- if (div == 0){ //DIV1
- return get_apb1_clock();
- }
- return get_apb1_clock() * 2;
- }
- uint32_t get_apb2_timer_clock(void){
- uint32_t apb2psc = 0U;
- apb2psc = RCU_CFG0;
- uint32_t div = GET_BITS(apb2psc, 11, 13);
- if (div == 0){ //DIV1
- return get_apb2_clock();
- }
- return get_apb2_clock() * 2;
- }
|