STM32U083RC的MSI时钟不仅可以直接设置为不同的频率,而且支持自校准,在程序内也可以写入校准参数。手册中有如下描述: Z$ Z' E* F$ z, B+ M) \- J' S 前提是要有LSE并且正常起振。HSI标称的频率是16MHz,但频偏范围在15.88MHz-16.08MHz,虽然能到1%的精度,但MSI通过LSE校准后能到0.25%的精度,确实提高很多。实际可以通过测试写入用于校准的数值。$ f. M5 a6 o4 p0 i 看下可能用的多一些的随机数生成器。说真随机数,是因为该功能由模拟电路实现,振荡器输出进行异或运算产生种子。并且具有错误中断。可以避免数据无效时的读取。使用方法也方便快捷,CubeMX中直接使能即可。 生成的程序添加库函数直接读出。) Z+ M( j; _/ a% _! x4 o: t. A 4 Q+ N" e# h: V, ^% W/ `
不使用库函数也不复杂,看下函数内部,只是有很多的状态判断,关键句还是读寄存器值0 P5 P2 O+ @" {$ D 这些之前高端些的芯片才有的功能如今慢慢下沉到了新的较低端的产品上,对用户来说是很好的事情,老的M3芯片就没有这个福利。RNG的成功率能达到99%,一般使用是够的。 |
【NUCLEO-U083RC评测】+串口printf打印
【NUCLEO-U083RC评测】1.MSI时钟,Sleep,stop,standy,shutdown四种低功耗模式测试
【NUCLEO-U083RC评测】串口printf输出
【NUCLEO-U083RC评测】创建项目工程
【NUCLEO-U083RC评测】2.使用LSE校准MSI时钟
【NUCLEO-U083RC评测】SLEEP_MODE、STOP_MODE、STANDBY_MODE简要测试
【谈“新”有礼】全新发布:实现功耗、性能与成本的完美平衡的STM32U0系列