如何通过Renode监视器的STM32_ADC类修改ADC_DR寄存器值?
如何在Renode中修改STM32F446RE的ADC读取值?
针对你使用Analog.STM32_ADC类模拟STM32F446RE ADC输入的场景,不能直接通过写入ADC_DR寄存器修改读取值(该寄存器为只读),也无法使用WriteDefault命令,正确的方式是调用该类内置的SetSample命令来设置指定通道的采样值。
具体操作步骤:
在Renode监视器中,直接针对你的ADC实例(这里是
adc1)执行SetSample命令,格式如下:adc1 SetSample <通道号> <采样值><通道号>:对应你固件中使用的ADC通道(比如通道0写0)<采样值>:12位ADC的有效值范围为0到0xFFF(对应0到3.3V的模拟输入)
示例:将ADC1通道0的采样值设置为满量程(0xFFF)
adc1 SetSample 0 0xFFF
补充说明:
- 每次执行
SetSample后,当固件触发ADC采样时,就会读取到你设置的对应通道值。 - 如果需要模拟连续变化的输入,可以结合Renode的脚本功能循环调用
SetSample,例如:while True: adc1 SetSample 0 0x000 emulation Sleep 100ms adc1 SetSample 0 0xFFF emulation Sleep 100ms
内容的提问来源于stack exchange,提问作者M. Boyes
相关产品推荐
相关产品推荐

