Ronan Blog

罗华东的博客 | 永远相信美好的事情即将发生

基于stm32 hal 库的 DS18B20驱动代码

2024-11-25 Tools Ronan

使用方法:

1.将下面的 DS18B20.c 放入你从 CubeMX 导出的工程的 ../Core/Src 目录中
2.将 DS18B20.h 放入 ../Core/Inc 目录中
3.在 Cube 中将要使用的引脚设置标签别名为 DS18b20

「点我获取DS18B20.c、DS18B20.h代码」

调用DS18b20驱动函数:
在main.c中合适的位置处添加 #include “ds18b20.h”:

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
 
#include "ds18b20.h"
 
/* USER CODE END Includes */

定义一个浮点型的变量,用于存放温度数据

/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
 
float Temp = 0;
 
/* USER CODE END PD */

在main函数中初始化ds18b20

/* Initialize all configured peripherals */
   MX_GPIO_Init();
   MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
 
   DS18B20_Init();
 
/* USER CODE END 2 */

在while(1)中调用温度读取函数

Continue reading

OpenOCD 烧录失败解决方法

2024-11-20 Docs Ronan

在烧录时遇到如下问题:

❯ openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "program /path/project/build.bin verify reset exit 0x08000000" 
                                                                                                             
openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "program build/final.bin verify reset exit 0x08000000"
Open On-Chip Debugger 0.12.0
Licensed under GNU GPL v2
For bug reports, read
       http://openocd.org/doc/doxygen/bugs.html
WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlink.cfg
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Info : clock speed 1000 kHz
Info : STLINK V2J45M30 (API v2) VID:PID 0483:374B
Info : Target voltage: 3.269241
Warn : UNEXPECTED idcode: 0x1ba01477
Error: expected 1 of 1: 0x2ba01477
in procedure 'program'
** OpenOCD init failed **
shutdown command invoked
make: *** [flash] Error 1

解决方法

在 /opt/homebrew/Cellar/open-ocd/0.12.0_1/share/openocd/scripts/target(根据自己安装 OpenOCD 的位置查找,通过 brew 安装的就在这个位置)找到符合自己单片机型号的 cfg 文件,例如 stm32f1x.cfg 。在其中找到关于 jtag scan chain 的设置,也就是类似下面:

Continue reading
Older posts Newer posts