本帖最后由 ddllxxrr 于 2019-6-2 18:16 编辑
一,构思
根据大赛的要求:
1. 两个MCU分别作为主控制器与从控制器, 接了同一个ADC输入, 同一个LED输出. 正常情况下主控器完成如下控制模式: ADC读值分为三个档位[adc_val < LIMIT_A, (adc_val >= LIMIT_A) && (adc_val <= LIMIT_B), adc_val > LIMIT_B], 分别对应LED的三种状态[灭, 3Hz闪烁, 常亮] ADC的输入建议使用电位器进行控制, LED输出控制建议使用负逻辑控制(输出低LED亮)。
2. 从控制器同时读取ADC的读数并监视LED输出情况, 监视的状态可以查看, 如接有小屏幕或者通过串口输出当前状态[ADC读数, LED输出状态], 刷新间隔2秒或更短。
加上配图,明显得两个MCU一起工作。
于是,我就按如下设计接线,主板是STM32F103VET6,其上有可调的ADC源,并且引脚引出,我就把这个引脚接到STM32L053的ADC引脚上。
二,搭建环境
大赛么,就得拿出东西,就用我的两块开发板加上五根连线就搞定了。他们分别是
主板的PC0,PC1,PC2为LED输出,而副板的D3,D4,D5(nucleo板)分别为输入。而再有两板线分别连到主板的ADC2,而主板上有一个
可调电阻,可以调出0.1到3.1的电压来。另一板线自然接地。
三,编程
由于用了两块板,自然用两种开发环境,有的看官说你显摆什么,用一种开发环境怎么不行了。我想说的是,nucelco那块板我用Mbed开发环境更简单啥!!!!
程序很简单的根据ADC转换结果输出到LED,而LED又接到副板。
主板程序 :
|