要求:使用ADC接收光敏传感器的数据发送至串口
软件:STM32CubeMx、串口助手
硬件:STM32F103ZET6、光敏传感器
Step1:在搜索栏找到使用的单片机型号,作者使用的是STM32F103ZET6
选择其中任意一个即可,这边出现了两款芯片都是同一型号,仅封装不同。
Step2:进行芯片配置
在RCC的配置中使用晶振。
配置ADC和串口。作者配置的是PV6为ADC1,将串口一配置为异步通信。
此时可以看到GPIO这一配置处有ADC1的信息。
Step3:配置时钟。
Step4:生成配置代码 。这里需要注意文件名不能为中文,生成路径需要在一个空文件夹下。
Step5:生成好后直接打开工程。
Step6: 按照配置图将光敏电阻的AO口与芯片的PV6口相连,连接VCC和GND。(一般使用3.3V,注意所需电压)
Step7:对ADC模块进行编程。
代码解析: 先声明并定义了一个无符号字符型变量 i,启动名为hadc1(串口1)的ADC进行转换。声明一个长度为10的uint8_t类型的数组QX,用于存储格式化后的ADC数据。判断等待ADC转换完成,超时时间为1000ms(1s),如果转换完成返回HAL_OK则执行接下来的程序:获取ADC转换结果存储在smog变量中,将smog格式化为字符串存储在QX中,最后通过UART发生QX数组中的数据。
Step8:改变光敏传感器接受光的程度可以发现串口助手的接受AO值有所改变。