KE02芯片调试记录


前言

该文章主要记录KE02系列芯片在使用过程中遇到的问题,为了防止时间长了,会形成遗忘,特此记录。如有问题,欢迎在评论指出和讨论。


以下是本篇文章正文内容

一、关于配置问题

1.1 UART串口配置

拦路虎记录:发现现有程序工程跟STM32不同,无法直接对引脚进行映射,配置相关引脚的串口模式,例如UART0有PTB0 and PTB1这一组,还有PTA2 and PTA3这一组,不知道怎么选择。

代码如下:

void uart_fun_test(void)
{
    UART_ConfigType sConfig,sConfig1;

		sConfig.u32SysClkHz = BUS_CLK_HZ;               // 设置UART模块时钟源为BUS_CLK
    sConfig.u32Baudrate = UART_BITRATE_9600;             // 设置波特率为9600
	  UART_Init(UART1,&sConfig);                      // 初始化UART1


    sConfig1.u32SysClkHz = BUS_CLK_HZ;
    sConfig1.u32Baudrate = UART_BITRATE_115200;             // 设置波特率为115200	
    SIM->PINSEL |= (1 << 7);  
	  UART_Init(UART0,&sConfig1);                      // 初始化UART0
		
		
	
		UART_EnableInterrupt(UART1,UART_RxBuffFullInt); // 使能接收中断
    NVIC_EnableIRQ(UART1_IRQn);
    UART1->S2 |= 1 << 6;                            // 清接收中断标志
    UART_EnableInterrupt(UART0,UART_RxBuffFullInt); // 使能接收中断
    NVIC_EnableIRQ(UART0_IRQn);
    UART0->S2 |= 1 << 6;    	
	
	
//    SIM->PINSEL |= (1 << 7);                        // 设置UART0_RX引脚为PTA2,UART0_TX引脚为PTA3
//    UART_Init(UART0,&sConfig);                      // 初始化UART0
//    UART_EnableInterrupt(UART0,UART_RxBuffFullInt); // 使能接收中断	
//    NVIC_EnableIRQ(UART0_IRQn);	
//    UART0->S2 |= 1 << 6;                            // 清接收中断标志	
//    UART_PutChar(UART0, 'a');
}

可以发现代码部分只有时钟源和波特率的配置,并没有跟STM32那种可以选择引脚,并将引脚配置成复用功能。
后来,发现自己忽略的注释代码中的语句,如下所示。SIM->PINSEL,通过Pin Selection Register ,置高置低进行显示。很简单的问题,浪费了不少时间,不太应该。

SIM->PINSEL |= (1 << 7); //设置UART0_RX引脚为PTA2,UART0_TX引脚为PTA3

在这里插入图片描述


小结:在芯片配置的时候,应该多看看数据手册,参考手册,了解大概配置过程,避免出现纰漏。

1.2 ICS内部时钟配置

   内部参考时钟(IRC)是可校准的,可用作FLL 的参考时钟,也可直接用作CPU 和总线时钟的时钟源。
该内部参考时钟不需要校准电容或电阻等外部元件。IRC 是由9 位ICS 寄存器的值校准,它提供典型分辨率
为0.1%的未校准的IRC 频率。与其他内部参考不同,该IRC 可被校准为31.25kHz 到39.06kHz 的频率范
围。作为FLL 参考使用时,允许用户将总线频率设置为8MHz ~ 10MHz 间的任意值,分辨率为0.1%。校准
后,校准频率的典型误差为+0.5%~ -1%,最大也只有± 2%。

      /* FEI mode by default */
        #if defined(CPU_KE02)
        if(((ICS->C2 & ICS_C2_BDIV_MASK)>>5) != 1)
        {
            ICS->C2 = (ICS->C2 & ~(ICS_C2_BDIV_MASK)) | ICS_C2_BDIV(1);
        }
        #else
            ICS->C2 = (ICS->C2 & ~(ICS_C2_BDIV_MASK)) | ICS_C2_BDIV(0);// FLL输出时钟不分频,系统时钟为40MHz
        #endif

二、其他

1.

代码如下(示例):


2.

代码如下(示例):



总结

总结:

MKE02系列单片机数据手册:

https://download.csdn.net/download/qq_37105835/12876976

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值