▶ STM32
STM32
cuntou0906
凌晨三点的麓山南路!
展开
-
STM32f407的ADC采样值出错
使用STM32f407的ADC遇到一个奇葩的问题。 STM32f407的ADC在采样的时候,值很大,甚至超过4096(stm32最高位12bit的ADC)。通过调试发现,无论设置了数据左对齐还是右对齐,其结果都是左对齐!!!这才导致了值很大,甚至超过4096。当然可以将这个结果移位来解决,但不是根本办法。 还是想,这到底为什么?明明配置了数据对齐方式,却没有效果。 ...原创 2022-06-09 21:34:38 · 3059 阅读 · 2 评论 -
STM32开发问题总结
STM32开发问题总结 嵌入式开发难免遇到各种坑,总结一下之前遇到的各种坑~,持续更新中…STM32发热严重 在使用STM32时,芯片发热严重,很烫手,而且集中在芯片的某一块区域。但奇怪的是,程序可以正常运行。 分析与解决: 很有可能是某个引脚被击穿了导致的,建议换一块芯片。STM32代码中某个变量值自动改变 在STM32开发中时,代码中的某个变量 突然自动变化,博主遇到过是一个结构体的一个变量数值自动变换(PS:这个可以通过debug分析出来原创 2021-12-21 13:16:29 · 3906 阅读 · 0 评论 -
ACS712 电流传感器
ACS712 电流传感器 ACS712 是基于霍尔效应的电流传感器。简介 ACS712 框图: ACS712 引脚如下表,其中IP+IP+IP+和IP−IP-IP−分别是待测电流的流入和流出引脚。VCCVCCVCC和GNDGNDGND是模块供电电压,VIOUTVIOUTVIOUT是模块输出电压值。ACS712将待测的模拟电流转化为模拟电压输出,因此可以将VIOUTVIOUTVIOUT接入到ADADAD,通过ADADAD测量出VIOUTVIOUTVIOUT,由于VIOUTVIOU原创 2021-09-22 21:57:24 · 29191 阅读 · 8 评论 -
C语言自定义 格式化打印(sprintf)
C语言格式化打印实现sprintf /* 格式化打印*/void MyFormatString(char * src,char * msg, ...){ va_list ap; char *p, *sval; int ival; double fval; char buf[30]; uint8_t strcnt = 0; /////////////////////////////////////////////////////////////////////////////// ch原创 2021-09-18 17:33:37 · 884 阅读 · 0 评论 -
嵌入式C语言的字符串和字符指针
C语言的字符串和字符指针 今天在写嵌入式代码时,遇到了个易错的,关于嵌入式CCC语言字符串和字符指针的问题。!!!! 在嵌入式CCC语言中,有sprintf格式化字符串函数,使用方式为:sprintf(DataWriteBuffer,"%d,%f,%s\r\n",10,10.1,"aaaa");其中DataWriteBuffer是一个字符串指针,将格式化后的字符串拷贝到DataWriteBuffer指针中。DataWriteBuffer用了两种定义方式:char原创 2021-09-18 17:19:32 · 283 阅读 · 0 评论 -
通信方式简介
通信方式简介 在做嵌入式开发,通信方式是一个重点,涉及两个板子如何进行交流。在介绍一些通信方式在pyboard中的使用之前,首先先简单介绍一下嵌入式通信方式。或许可能听过什么单工,半双工,同步通信,异步通信。单工 半双工 全双工 单工 表示数据传输只在一个方向上传输,不能实现双向通信,即A发送数据给B,而B不能发送数据给A。 **半双工 **表示数据可以实现双向传输,但是同一时刻只能单向传输。比方说,A发送数据给B的同时,B不能给A发送消息,只能等到A发送完了,B才能给A发。原创 2021-09-17 15:07:37 · 157 阅读 · 0 评论 -
FreeRTOS使用队列出错
FreeRTOS错误解决一错误描述 Stm32运行FreeRTOS,在串口中断函数中加上使用队列发送数据的代码就报错,不加就没问题: // 省略前面代码 xQueueSendFromISR(U3_MSG_Queue,&res,&IspxHigherPriorityTaskWoken); if(IspxHigherPriorityTaskWoken==pdTRUE){ portYIELD_FROM_ISR(IspxHigherPriorityTaskWoken);原创 2021-06-25 17:03:32 · 2402 阅读 · 1 评论 -
__asm关键字
__asm关键字 __asm在嵌入式开发中常见,经常在c代码中看到。__asm实际是说明接下来的语句是汇编代码。__asm用于函数 __asm在函数定义上,放置在函数返回类型之前,然后说明函数体内部都是汇编代码。__asm void INTX_DISABLE(void){ CPSID I // 汇编代码 BX LR // 汇编代码}__asm用于语句 __asm用于语句,直接用花括号将汇编代码括起来。__asm{ CPSID I原创 2021-06-17 22:11:10 · 7961 阅读 · 1 评论