【PIC32MZ】调试设置

PIC32MZ有两个调试端口,ICSP1和ICSP2,PIC32MZ EF Start Kit开发板上使用的是ICSP2(详细查看官网电路图),而Harmony默认为ICSP1,无法直接调试,需要在Harmony的device中做一些配置。

DEVCFG0中前四个,第三个最重要,不同板子通道可能不同

Background Debugger Enable on
Jtag Enable on
ICE\ICD comm channel select ICS_PGx2
Trace Enable on

 

PIC32MZ是Microchip公司推出的一款32位微控制器,它具有硬件随机数生成器(RNG)模块,可以用于生成高质量的随机数。下面是PIC32MZ的RNG驱动详解: 1. 初始化RNG模块 在使用RNG模块之前,需要对其进行初始化。初始化RNG模块的函数如下: ``` void RNG_Initialize(void) { RNGCONbits.TRNGEN = 1; // Enable TRNG while (!RNGCONbits.TRNGRDY); // Wait for TRNG to be ready } ``` 该函数首先使能RNG模块,并等待TRNGRDY位变为1,表示RNG模块已经准备好工作。 2. 生成随机数 RNG模块生成随机数的方式是通过读取寄存器RNGNUM,该寄存器中存储着随机数。读取RNGNUM寄存器的函数如下: ``` uint32_t RNG_GetRandomNumber(void) { while (!RNGCONbits.TRNGRDY); // Wait for TRNG to be ready return RNGNUM; } ``` 该函数首先等待TRNGRDY位变为1,表示RNG模块已经准备好生成随机数,然后返回RNGNUM寄存器中存储的随机数。 3. 生成指定范围内的随机数 有时候需要生成指定范围内的随机数,可以使用以下函数: ``` uint32_t RNG_GetRandomNumberInRange(uint32_t min, uint32_t max) { uint32_t range = max - min + 1; uint32_t random = RNG_GetRandomNumber(); return (random % range) + min; } ``` 该函数首先计算出指定范围内的随机数的数量,然后调用RNG_GetRandomNumber函数生成一个随机数,并将其对指定范围内的随机数的数量取模,再加上指定范围的最小值,就可以得到一个指定范围内的随机数。 总之,使用PIC32MZ的RNG模块可以方便地生成高质量的随机数,可以用于密码学、游戏等领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值