推荐阅读最新更新时间:2024-03-16 16:05
怎么解决STM32(MDK)中不能使用printf()函数的问题
简单地说:想在mdk 中用printf,需要同时重定义fputc函数和避免使用semihosting(半主机模式), 标准库函数的默认输出设备是显示器,要实现在串口或LCD输出,必须重定义标准库函数里调用的与输出设备相关的函数. 例如:printf输出到串口,需要将fputc里面的输出指向串口(重定向),方法如下: #ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker- Libraries- Small printf set to 'Yes') calls __io_putchar() */ #define PUTCHAR_
[单片机]
【STM32】HAL库-CRC校验
CRC 循环冗余校验(CRC)计算单元是根据固定的生成多项式得到任一32位全字的CRC计算结果。 使用CRC-32(以太网)多项式:0x4C11DB7 CRC计算单元含有1个32位数据寄存器: 对该寄存器进行写操作时,作为输入寄存器,可以输入要进行CRC计算的新数据。 对该寄存器进行读操作时,返回上一次CRC计算的结果。 每一次写入数据寄存器,其计算结果是前一次CRC计算结果和新计算结果的组合(对整个32位字进行CRC计算,而不是逐字节地计算)。 在CRC计算期间会暂停CPU的写操作,因此可以对寄存器CRC_DR进行背靠背写入或者连续地写-读操作。 可以通过设置寄存器CRC_CR的RESET位来重置寄存器CRC
[单片机]
STM32 I2C HAL库读取HTU21D
以下代码为使用I2C库函数读取HTU21D温度数据的例程。 ret=HAL_I2C_Mem_Read(&hi2c1,0x80,0xf3,I2C_MEMADD_SIZE_8BIT,rx_buf,2,2000); if(ret == HAL_OK) { rx_buf &= 0xfc; temp = rx_buf ; temp *= 256; //wendu =8; temp += rx_buf ; temp *= 17572; temp /= 65536; temp -= 4685; //保留两位小数 temp /=10; result = (int16_t)temp; pri
[单片机]
stm32的TIM定时器HAL库函数的使用
相关具体内容参考 stm32f4xx_hal_time.h 几种模式函数的类型都差不多,包括基本类型(Base),输出比较(OC),输入捕获(IC),pwm(PWM),单脉冲(One_Pulse)和编码器(Encoder)。 /****** xxx使用上述几种模式的英文替换即可*******/ HAL_TIM_xxx_Init HAL_TIM_xxx_DeInit HAL_TIM_xxx_MspInit HAL_TIM_xxx_MspDeInit /***轮询方式启动/停止/ HAL_TIM_xxx_Start HAL_TIM_xxx_Stop /***中断方式启动/停止/ HAL_TIM_xxx_Start_IT HAL_TIM
[单片机]
STM32CubeMX串口配置及库printf打印
最新版STM32CubeMXV5.0.0已经上传到了网盘,或者自己通过软件在线升级。 STM32CubeMX运行环境搭建包含两个部分。首先是 Java运行环境安装,其次是STM32CubeMX软件安装。Java 软件和STM32CubeMX 软件都可以在官网找到最新的下载。 1. Java运行环境,大家可以到 Java 官网 www.java.com下载最新的 Java 软件; 2.STM32CubeMX可以在ST官网www.st.com/content/st_com/zh.html下载最新的版本; 3.或者在我网盘上下载全部所需软件资料,链接:https://pan.baidu.com/s/1kWUH08n 密码:
[单片机]
基于STM32的多种printf用法 你都知道吗?
在调试代码的时候,最常用的就是使用printf函数来输出一些打印信息,提示自己代码的执行情况。 如果你的UART串口不够用,还要用printf,此时该怎么办? 方法其实是有的,那就是:使用SWO/SWV。 SWO:Serial Wire Output,串行线输出 SWD:Serial Wire Viewer,串行线查看器 一、常见printf输出 1.UART打印 这种使用UART串口输出,需要占用一个 硬件 串口。 2. Keil MDK- ARM Viewer输出 3.IAR EWARM终端输出 4.ST-LINK U ti lity SWV输出 这后面三种不占用硬件UART,使用ITM机制。 二、UA
[单片机]
STM32--HAL库IIC
hal库已封装函数 输入输出函数: 阻塞模式: HAL_I2C_Master_Transmit(); HAL_I2C_Master_Receive(); HAL_I2C_Slave_Transmit(); HAL_I2C_Slave_Receive() HAL_I2C_Mem_Write(); HAL_I2C_Mem_Read(); HAL_I2C_IsDeviceReady() 带中断非阻塞模式: HAL_I2C_Master_Transmit_IT(); HAL_I2C_Master_Receive_IT(); HAL_I2C_Slave_Transmit_IT() HAL_I2C_Sl
[单片机]
keil环境下STM32使用printf
1、首先需要设置keil ! (https://img-blog.csdn.net/20180509170628341?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmd6aGltaW5fMDcwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 2、添加头文件 3、在代码中增加两段代码 增加第一段代码: #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PR
[单片机]