SYD881X使用代码修改32.768khz tolerance PPM

发布时间:2024年01月19日
32.768khz tolerance PPM的功能和效果参考文章:https://chengdong.blog.csdn.net/article/details/118540241
对于使用外部32.768khz的代码ppm使用2000是比较合适的,但是当代码使用内部32.768khz的时候ppm为2000就不合适了,这个值要在6000以上,建议使用8000,但是当代码使用的是内部32.768khz而且已经出货后才发现ppm没有设置对。
时候有两种方法可以修改,一个是升级4K,一个是调用API接口来修改,因为当初出货的时候往往没有留修改ppm的接口,所以对于后者往往需要更新代码,这里说一下怎么调用API实现上述功能,代码如下:
#define	CLOCK_PPM_VALUE	8000
//因为PPM存放在4K中,所以Get_Clock_PPM和Set_Clock_PPM函数必须在关所有中断的时候使用,也就是只能够在__disable_irq和__enable_irq函数中间使用
        //这里是在上电使用,所以没有这个问题
		uint16_t ppm= Get_Clock_PPM();
		dbg_printf("CLOCK_PPM now:%d\r\n",ppm);
		if(ppm!=CLOCK_PPM_VALUE)
		{
			dbg_printf("set CLOCK PPM to:%d\r\n",CLOCK_PPM_VALUE);
            Set_Clock_PPM(CLOCK_PPM_VALUE);
            delay_ms(1000);
            SystemReset();
            while(1);
		}
代码中先读取当前的ppm是不是自己想要的,如果不是就要设置,防止重复设置

在运行代码之前读取PPM为2000:
在这里插入图片描述
下载运行代码后log如下:
在这里插入图片描述
可以看到PPM确实修改成功了,这里也可以直接在studio中看到:
在这里插入图片描述
PPM修改成功,注意本文功能要在syd8811_ble_lib20240119_160427.lib以上的协议栈版本才有
本文代码请从如下地址下载:https://download.csdn.net/download/chengdong1314/88761710

文章来源:https://blog.csdn.net/chengdong1314/article/details/135701089
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。