rtthread stm32h743的使用(五)adc设备使用

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们使用一块stm32h743及fpga的核心板完成相关实验,核心板如图:
在这里插入图片描述
在这里插入图片描述
1.首先建立rtthread工程

在这里插入图片描述
2.编译下载看看调试口是否正常
在这里插入图片描述
3.在工程里打开cubemux 进行adc外设配置
在这里插入图片描述
4.首先配置外部时钟
在这里插入图片描述
5.再配置adc设备,如图我们配置adc1,0通道。
在这里插入图片描述
6.相关参数配置如下,我们采用16位模式,相关设置具体含义我们后面再分析,这里先让adc设备跑起来:
在这里插入图片描述
7.配置芯片主频:
在这里插入图片描述
8.生成工程:
在这里插入图片描述
在这里插入图片描述
9.打开工程里cubemux文件夹下的主函数,并将标记处static关键字改为extern,我们要在自建的工程里调用,函数前的关键字也要改:
在这里插入图片描述
10.打开我们的工程,调用初始化函数,并且读取adc的值如图:
在这里插入图片描述
代码如下:
#include <rtthread.h>
#include “rtdevice.h”
#include “main.h”
#define DBG_TAG “main”
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
ADC_HandleTypeDef hadc1;
extern void MX_GPIO_Init(void);
extern void MX_ADC1_Init(void);

int main(void)
{
uint16_t Value;
MX_GPIO_Init();
MX_ADC1_Init();
HAL_ADC_Start(&hadc1);
while (1)
{
LOG_D(“Hello RT-Thread743!”);
rt_thread_mdelay(100);
if (HAL_ADC_PollForConversion(&hadc1, 10) == HAL_OK)
{
Value=HAL_ADC_GetValue(&hadc1);
rt_kprintf(“HAL_ADC_GetValue= %d !\n”, Value);
HAL_ADC_Start(&hadc1);
}
}
return RT_EOK;
}

11.编译正常下载,分别在PA0引脚上接一个3.3V,和gnd看看串口打印效果:
在这里插入图片描述
在这里插入图片描述
我们看到接3.3V时,16为值为65535,接gnd时值为1000左右,1000/65535*3.3=0.05V,有点误差都是正常的。
这里adc外设就能够正常使用了,我们这里没有用到rtthread 的外设驱动,因为使用过程中发现rtthread的外设驱动编译错误,很久没有更新,所以先只使用rtthread的内核,外部驱动后面试着改下有问题的地方再发出来。

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值