ST意法半导体
直播中

hxjq

12年用户 828经验值
私信 关注
[问答]

请问如何在STM32H743ZI2上使用RNG?

我想使用 H743ZI2 的 RNG。提供的示例有效,但在新项目中我无法正常工作,CPU 时钟配置为 400MHz,就像示例中一样。
  • /* RNG Initialization */
  • if (HAL_RNG_DeInit(&hrng) != HAL_OK)
  • {
  •     /* DeInitialization Error */
  •     Error_Handler();
  • }
  • /* Initialize the RNG peripheral */
  • if (HAL_RNG_Init(&hrng) != HAL_OK)
  • {
  •      /* Initialization Error */
  •     Error_Handler();
  • }
  • uint32_t rnd_number;
  • void main()
  • {
  •     while (1)
  •     {
  •         status = HAL_RNG_GenerateRandomNumber(&hrng, &rnd_number);
  •         if (status != HAL_OK)
  •         {
  •             Error_Handler();
  •         }
  •     }
  • }









回帖(1)

周棠亨

2023-1-9 10:03:02

  • HAL_StatusTypeDef HAL_RNG_Init(RNG_HandleTypeDef *hrng)
  • {
  •   uint32_t tickstart;
  •   /* Check the RNG handle allocation */
  •   if (hrng == NULL)
  •   {
  •     return HAL_ERROR;
  •   }
  •   /* Check the parameters */
  •   assert_param(IS_RNG_ALL_INSTANCE(hrng->Instance));
  •   assert_param(IS_RNG_CED(hrng->Init.ClockErrorDetection));

  •   /** My fix */

  •   hrng->Instance = RNG;

由于传递的句柄显示的值与 SFR 中的真实寄存器不同,因此我深入研究了 HAL 驱动程序。正如我所怀疑的,实例的断言不起作用。我添加了一个手动修复,截至目前,它似乎有效。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分