[新品上市] 【APM32F107VC-MINI开发板测评】+ 采集温度并串口打印

[复制链接]
1197|11
 楼主| muxb 发表于 2023-4-22 12:30 | 显示全部楼层 |阅读模式
拿到了极海107 MINI的板子,首先下载SDK,并测试了串口的demo,添加了printf打印。注意SDK编译时,宏定义修改成107 MINI。
IMG_20230422_121151.jpg

然后找了两个GPIO连接DS18B20,采集温度并通过串口显示。
未命名1682136797.png
分析仪抓的波形:

未命名1682136759.png
原理图:
找的PC0供电,PC2通讯.
未命名1682137400.png

代码:
void APM_MINI_PC_Init(void)
{
    GPIO_Config_T  configStruct;

    /* Enable the GPIO_C Clock */
    RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_GPIOC);

    /* Configure the GPIO_C pin */
    configStruct.pin = GPIO_PIN_0 | GPIO_PIN_2;
    configStruct.mode = GPIO_MODE_OUT_PP;
    configStruct.speed = GPIO_SPEED_50MHz;
    GPIO_Config(GPIOC, &configStruct);
    //GPIO_PORT[Led]->BC = GPIO_PIN[Led];
}

输出时用PP,输入时用PU,不用另外加上拉电阻,通讯效果还可以,挺稳定的。
void SET_DQ_OUT(u8 flag)
{
        GPIO_Config_T  configStruct;
        if(flag){
                //input
                //GPIO_Init(GPIOB, PIN0, 0, 1, 0, 0);
                configStruct.pin = GPIO_PIN_2;
                configStruct.mode = GPIO_MODE_IN_PU;
                configStruct.speed = GPIO_SPEED_50MHz;
                GPIO_Config(GPIOC, &configStruct);
        }else{
                //output
                //GPIO_Init(GPIOB, PIN0, 1, 1, 0, 0);
                configStruct.pin = GPIO_PIN_2;
                configStruct.mode = GPIO_MODE_OUT_PP;
                configStruct.speed = GPIO_SPEED_50MHz;
                GPIO_Config(GPIOC, &configStruct);
        }
}

GPIO拉高拉低和读取,直接操作的寄存器:
#define SET_DQ()                 GPIOC->ODATA |= GPIO_PIN_2
#define CLR_DQ()                 GPIOC->ODATA &= ~GPIO_PIN_2
#define GET_DQ()                 ((GPIOC->IDATA&GPIO_PIN_2)>>0x02)


板子直接用JTAG连接并烧录程序,很方便,而且串口也引出了,打印很方便,板子很实用,给极海赞一个。
OK。

评论

赞  发表于 2023-5-31 08:45
averyleigh 发表于 2023-5-11 18:14 | 显示全部楼层
多个DS18B20怎么接?               
usysm 发表于 2023-5-11 18:20 | 显示全部楼层
最多可以接多少个ds18b20?
zerorobert 发表于 2023-5-11 18:26 | 显示全部楼层
通过使用OneWire协议,可以选择读取其中一个设备或者广播命令同时读取所有设备。
mmbs 发表于 2023-5-11 18:40 | 显示全部楼层
给个APM32F107VC单片机单线挂载多个ds18b20温度计
mattlincoln 发表于 2023-5-11 18:56 | 显示全部楼层
将多个DS18B20串行连接起来,每个DS18B20都通过一个引脚连接到下一个DS18B20的数据引脚,最后一个DS18B20的数据引脚连接到微控制器。
yorkbarney 发表于 2023-5-11 19:08 | 显示全部楼层
DS18B20温度传感器与单片机间的通信线(延长线)可以多长
hilahope 发表于 2023-5-11 19:45 | 显示全部楼层
DS18B20编程时候为什么要跳过ROM
geraldbetty 发表于 2023-5-11 20:01 | 显示全部楼层
多个DS18B20并联接在同一条总线上,每个DS18B20都有一个唯一的64位ROM码。
deliahouse887 发表于 2023-5-11 20:16 | 显示全部楼层
如何判断多个ds18b20温度传感器
 楼主| muxb 发表于 2023-5-31 16:22 | 显示全部楼层
deliahouse887 发表于 2023-5-11 20:16
如何判断多个ds18b20温度传感器

通过UID判断。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

599

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部