本文主要是介绍SYD881X使用代码修改32.768khz tolerance PPM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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
这篇关于SYD881X使用代码修改32.768khz tolerance PPM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!