STM32工程项目内,使用C语言生成固定范围内的随机数,每次都不相同,C语言程序怎么写
时间: 2024-10-10 22:02:32 浏览: 19
在STM32微控制器项目中,想要生成固定范围内的随机数并保证每次运行都不重复,你可以使用`rand()`函数结合种子(seed)来实现。`rand()`函数需要一个初始化值,也就是种子,如果你每次都使用同一个种子,那么每次产生的随机数序列将会一样。为了避免这种情况,你需要设置不同的种子。
这里是一个简单的示例,假设你想生成0到9之间的整数:
```c
#include "stm32f10x.h" // 引入必要的头文件,如包含rand()函数的头文件
#include <stdlib.h> // 包含 srand 和 rand
// 设置一个唯一的种子,例如当前时间(毫秒)
unsigned long seed = (unsigned long)time(NULL);
void generate_random(int min, int max) {
// 使用当前时间作为随机数种子
srand(seed);
// 生成一个[0, RAND_MAX]的随机数,然后转换到指定范围
int random_num = min + rand() % (max - min + 1);
printf("Generated random number: %d\n", random_num);
}
int main(void) {
// 调用函数生成随机数
generate_random(0, 9);
return 0;
}
```
每次程序运行时,由于`time(NULL)`会返回当前系统时间,因此种子就会改变,进而得到不同的随机数序列。