我最近发现了一个C代码(顺便说一句)

freq_xtal = ((622.08E6 * vcxo_reg_val->hiv * vcxo_reg_val->n1)/(temp_rfreq));

根据我的直觉,622.08E6应该是622.08x 10^6。
从这个问题来看,这个假设是正确的。
SO related question
所以我试着用
uint32_t default_freq = 622080000;

不知什么原因,这似乎不管用
任何想法或建议

最佳答案

你遇到的问题(我在这里推测是因为我没有剩下的代码)似乎是用整数替换浮点导致乘法和除法是基于整数的,而不是基于十进制的。因此,现在计算错误的值。
试着把你的uint32设为double,看看能不能把它清除掉。

10-08 00:05