打印
[技术问答]

HK32F103CBT6 标准库函数及例程

[复制链接]
3162|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小聂|  楼主 | 2022-2-25 17:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
你好,麻烦问一下, 请问HK32F103CBT6的标准库函数和例程在哪里下载啊?  直接用STM32F103CBT6的工程hex烧写进去能正常运行吗?

使用特权

评论回复
沙发
SDLin| | 2022-2-26 09:06 | 只看该作者
如附件。
从SxxT切换到HK芯片,需要改什么?
HK芯片兼容SxxT,但同时有小部分设计上的差异,所以还是需要做小部分改动:
【1】【HKMicroChip.HK32F1xx_DFP.1.0.6.rar】keil器件库,安装,选择我们HK芯片型号,HK编程算法,保存,重新编译。
【2】应用笔记,主要是HK和SxxT之间设计上的差异点。所以有用到的模块,按照这里面的修改,没有用到的就不用管。
【3】晶振电容。很多用SxxT的HSE是8MHz+20pF的组合,我们HK的一般是8MHz+10pF的组合或者8MHz+12pF的组合,当然最好是去做晶振匹配测试。还有按应用笔记里面的【2.2.2 HSE 起振缓慢问题】,把超时检测时间加大,改为(uint32_t)0x00100000也可以,(只要小于你们应用上允许等待的最大时间即可)


HKMicroChip.HK32F1xx_DFP.1.0.6.rar

1.74 MB

keil器件库

HK32F103_Library_V1.0.4A.rar

220.89 KB

库函数

HK32F103应用笔记V1.0.35.pdf

1.92 MB

应用笔记

使用特权

评论回复
板凳
小聂|  楼主 | 2022-2-28 10:04 | 只看该作者
SDLin 发表于 2022-2-26 09:06
如附件。
从SxxT切换到HK芯片,需要改什么?
HK芯片兼容SxxT,但同时有小部分设计上的差异,所以还是需要做 ...

好的  非常感谢

使用特权

评论回复
地板
小聂|  楼主 | 2022-2-28 11:00 | 只看该作者
SDLin 发表于 2022-2-26 09:06
如附件。
从SxxT切换到HK芯片,需要改什么?
HK芯片兼容SxxT,但同时有小部分设计上的差异,所以还是需要做 ...

你好  麻烦再一下    我将你发给我的那个基础工程芯片从HK32F103VE  变成HK32F103CB芯片。我做了如下操作:
  1.把C/C++下面的宏定义 HK32F103VEXX  改成 HK32F103CBXX
  2.把工程里CMSIS里面  startup_HK32F103xE.s 改为了 startup_HK32F103xB.s
  3.在Utilities->Settings 里面的Flash文件修改成对应的
我现在遇到的问题是 修改完这些后  一编译报了很多错误  425个  是我还有哪些地方没改到的吗?、
谢谢

使用特权

评论回复
评论
lmn2005 2023-5-4 21:17 回复TA
我怎么会提示这4个错误: creating preprocessor file for core_cm3.c... ../HK32F103/CMSIS/CM3/Core/core_cm3.c(445): error: non-ASM statement in naked function is not supported uint32_t result=0; ^ ../HK32F103/CMSIS/CM3/Core/core_cm3.c(442): note: attribute is here uint32_t __get_PSP(void) __attribute__( ( naked ) ); ^ ../HK32F103/CMSIS/CM3/Core/core_cm3.c(465): error: parameter references not allowed in naked functions "...  
苏州i 2022-3-24 04:44 回复TA
我也是一样的 你怎么解决的,分享一下,谢谢啦 
5
SDLin| | 2022-2-28 15:10 | 只看该作者
小聂 发表于 2022-2-28 11:00
你好  麻烦再一下    我将你发给我的那个基础工程芯片从HK32F103VE  变成HK32F103CB芯片。我做了如下操作 ...

【1】你是想用哪个型号的芯片?
【2】把你工程发一下,我看看。

使用特权

评论回复
6
小聂|  楼主 | 2022-3-1 10:41 | 只看该作者
SDLin 发表于 2022-2-28 15:10
【1】你是想用哪个型号的芯片?
【2】把你工程发一下,我看看。

你好  我想要的是HK32F103CBT6的  不过我解决了问题了  里面有一个__IOM的宏定义没有申明  我改成了__IO  就没问题了,   谢谢

使用特权

评论回复
7
tpgf| | 2022-3-7 20:39 | 只看该作者
官方网站肯定是有的啊

使用特权

评论回复
8
zljiu| | 2022-3-7 20:42 | 只看该作者
官方文件的问题吗

使用特权

评论回复
9
tfqi| | 2022-3-7 20:57 | 只看该作者
看着这么像是笔误呢

使用特权

评论回复
10
nawu| | 2022-3-7 21:06 | 只看该作者
这个原因可真是不好找

使用特权

评论回复
11
drer| | 2022-3-7 21:27 | 只看该作者
难道不报错的吗

使用特权

评论回复
12
qcliu| | 2022-3-7 21:45 | 只看该作者
至少兼容性还不错

使用特权

评论回复
13
lmn2005| | 2023-5-4 21:21 | 只看该作者
本帖最后由 lmn2005 于 2023-5-4 21:22 编辑



编译提示这些错误,该如何 解决?同样是HK32F103CBT6
creating preprocessor file for core_cm3.c...
../HK32F103/CMSIS/CM3/Core/core_cm3.c(445): error: non-ASM statement in naked function is not supported
  uint32_t result=0;
  ^
../HK32F103/CMSIS/CM3/Core/core_cm3.c(442): note: attribute is here
uint32_t __get_PSP(void) __attribute__( ( naked ) );
                                          ^
../HK32F103/CMSIS/CM3/Core/core_cm3.c(465): error: parameter references not allowed in naked functions
                  "BX  lr     \n\t" : : "r" (topOfProcStack) );
                                             ^
../HK32F103/CMSIS/CM3/Core/core_cm3.c(461): note: attribute is here
void __set_PSP(uint32_t topOfProcStack) __attribute__( ( naked ) );
                                                         ^
../HK32F103/CMSIS/CM3/Core/core_cm3.c(479): error: non-ASM statement in naked function is not supported
  uint32_t result=0;
  ^
../HK32F103/CMSIS/CM3/Core/core_cm3.c(476): note: attribute is here
uint32_t __get_MSP(void) __attribute__( ( naked ) );
                                          ^
../HK32F103/CMSIS/CM3/Core/core_cm3.c(499): error: parameter references not allowed in naked functions
                  "BX  lr     \n\t" : : "r" (topOfMainStack) );
                                             ^
../HK32F103/CMSIS/CM3/Core/core_cm3.c(495): note: attribute is here
void __set_MSP(uint32_t topOfMainStack) __attribute__( ( naked ) );
                                                         ^
4 errors generated.

使用特权

评论回复
14
勿忘心安99| | 2023-6-8 21:06 | 只看该作者
我用的HK32F103CBT6,使用内部时钟,PLL输出64M, 能正常开机,但是实际只有8M,时钟寄存器都一个个对了,也没看出代码有什么问题。有没有朋友遇到一样情况的,怎么解决。会不会是我芯片坏了。
这个是时钟配置的函数
#define SYSCLK_HSI_PLL_FREQ_64MHz                  64000000

void SystemInit (void)
{
  /* Reset the RCC clock configuration to the default reset state(for debug purpose) */
  /* Set HSION bit */
  RCC->CR |= (uint32_t)0x00000001;

  /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */
  RCC->CFGR &= (uint32_t)0xF8FF0000;

  /* Reset HSEON, CSSON and PLLON bits */
  RCC->CR &= (uint32_t)0xFEF6FFFF;

  /* Reset HSEBYP bit */
  RCC->CR &= (uint32_t)0xFFFBFFFF;

  /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */
  RCC->CFGR &= (uint32_t)0xFF80FFFF;

  /* Disable all interrupts and clear pending bits  */
  RCC->CIR = 0x009F0000;
       
#if defined (HK32F10X_HD)  
  #ifdef DATA_IN_ExtSRAM
    SystemInit_ExtMemCtl();
  #endif /* DATA_IN_ExtSRAM */
#endif

  /* Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers */
  /* Configure the Flash Latency cycles and enable prefetch buffer */
  SetSysClock();

#ifdef VECT_TAB_SRAM
  SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
#else
  SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
#endif
}

static void SetSysClock(void)
{
#ifdef SYSCLK_FREQ_HSE
  SetSysClockToHSE();
#elif defined SYSCLK_FREQ_24MHz
  SetSysClockTo24();
#elif defined SYSCLK_FREQ_36MHz
  SetSysClockTo36();
#elif defined SYSCLK_FREQ_48MHz
  SetSysClockTo48();
#elif defined SYSCLK_FREQ_56MHz
  SetSysClockTo56();  
#elif defined SYSCLK_FREQ_72MHz
  SetSysClockTo72();
#elif defined SYSCLK_HSI_PLL_FREQ_48MHz
  SetSysClockToHSI48();
#elif defined SYSCLK_HSI_PLL_FREQ_64MHz
  SetSysClockToHSI64();
#endif

/* If none of the define above is enabled, the HSI is used as System clock
    source (default after reset) */
}

static void SetSysClockToHSI64(void)
{
  __IO uint32_t StartUpCounter = 0, HSIStatus = 0;
  
  /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/   
  /* Enable HSI */   
  RCC->CR |= ((uint32_t)RCC_CR_HSION);

  /* Wait till HSE is ready and if Time out is reached exit */
  do
  {
    HSIStatus = RCC->CR & RCC_CR_HSIRDY;
    StartUpCounter++;  
  } while((HSIStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));

//  if ((RCC->CR & RCC_CR_HSERDY) != RESET)
//  {
//    HSIStatus = (uint32_t)0x01;
//  }
//  else
//  {
//    HSIStatus = (uint32_t)0x00;
//  }  

  if (HSIStatus == (uint32_t)0x01)
  {
    /* Enable Prefetch Buffer */
    FLASH->ACR |= FLASH_ACR_PRFTBE;

    /* Flash 2 wait state */
    FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
    FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2;   


    /* HCLK = SYSCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
      
    /* PCLK2 = HCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;
   
    /* PCLK1 = HCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2;
  
    /*  PLL configuration: PLLCLK = HSI/2 * 16 = 64 MHz */
    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
                                        RCC_CFGR_PLLMULL));
    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSI_Div2 | RCC_CFGR_PLLMULL16);

    /* Enable PLL */
    RCC->CR |= RCC_CR_PLLON;

    /* Wait till PLL is ready */
    while((RCC->CR & RCC_CR_PLLRDY) == 0)
    {
    }
   
    /* Select PLL as system clock source */
    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
    RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;   

    /* Wait till PLL is used as system clock source */
    while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)RCC_CFGR_SWS_PLL)
    {
    }
       
        RCC->CIR |= RCC_CIR_CSSC;
        while((RCC->CIR & RCC_CIR_CSSF) == (uint32_t)RCC_CIR_CSSF);
       
  }
  else
  { /* If HSE fails to start-up, the application will have wrong clock
         configuration. User can add here some code to deal with this error */
          while(1);
  }
}

使用特权

评论回复
15
chenjun89| | 2023-6-9 23:32 | 只看该作者
论坛下载或者去官网下载

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

13

帖子

0

粉丝