打印
[新品上市]

【APM32F107VC-MINI开发板测评】+ 采集温度并串口打印

[复制链接]
312|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
muxb|  楼主 | 2023-4-22 12:30 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
拿到了极海107 MINI的板子,首先下载SDK,并测试了串口的demo,添加了printf打印。注意SDK编译时,宏定义修改成107 MINI。


然后找了两个GPIO连接DS18B20,采集温度并通过串口显示。

分析仪抓的波形:


原理图:
找的PC0供电,PC2通讯.


代码:
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。

使用特权

评论回复
评论
forgot 2023-5-31 08:45 回复TA
赞 
沙发
averyleigh| | 2023-5-11 18:14 | 只看该作者
多个DS18B20怎么接?               

使用特权

评论回复
板凳
usysm| | 2023-5-11 18:20 | 只看该作者
最多可以接多少个ds18b20?

使用特权

评论回复
地板
zerorobert| | 2023-5-11 18:26 | 只看该作者
通过使用OneWire协议,可以选择读取其中一个设备或者广播命令同时读取所有设备。

使用特权

评论回复
5
mmbs| | 2023-5-11 18:40 | 只看该作者
给个APM32F107VC单片机单线挂载多个ds18b20温度计

使用特权

评论回复
6
mattlincoln| | 2023-5-11 18:56 | 只看该作者
将多个DS18B20串行连接起来,每个DS18B20都通过一个引脚连接到下一个DS18B20的数据引脚,最后一个DS18B20的数据引脚连接到微控制器。

使用特权

评论回复
7
yorkbarney| | 2023-5-11 19:08 | 只看该作者
DS18B20温度传感器与单片机间的通信线(延长线)可以多长

使用特权

评论回复
8
hilahope| | 2023-5-11 19:45 | 只看该作者
DS18B20编程时候为什么要跳过ROM

使用特权

评论回复
9
geraldbetty| | 2023-5-11 20:01 | 只看该作者
多个DS18B20并联接在同一条总线上,每个DS18B20都有一个唯一的64位ROM码。

使用特权

评论回复
10
deliahouse887| | 2023-5-11 20:16 | 只看该作者
如何判断多个ds18b20温度传感器

使用特权

评论回复
11
muxb|  楼主 | 2023-5-31 16:22 | 只看该作者
deliahouse887 发表于 2023-5-11 20:16
如何判断多个ds18b20温度传感器

通过UID判断。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

586

帖子

7

粉丝