STM32
文章平均质量分 92
蓝凌风
技术屌丝
展开
-
STM32中的main函数入口
昨天在openedv.com论坛上看到别人STM32的启动文件的详解,里面在讨论到说到是不是可以修改main函数里,_main是不是我们C语言的main函数的入口。其实启动文件里我们只是看到很小一部分的代码很难回答这些问题,我于是反汇编了STM32 的AXF文件,给出了一些解答,如下: 为了让大家更清楚的知道STM32是怎么启动的。这里用到IDA64这个反汇编的利器来找反一下ST原创 2014-12-29 22:10:06 · 7217 阅读 · 0 评论 -
STM32F0除法计算引起的485丢包问题
前些天在调试STM32F042的Modbus程序,用的是中断接收+Systick超时判断包接收完成,波特率是115200。调试发现丢包很严重,三分一左右的丢包率。用MDK调试发现是串口溢出中断了,造成串口溢出,无非是接收中断来不及把RDR的数据取走,又收到下一个数据,引起数据的溢出。首先是考虑到中断优先级的问题,怀疑串口的中断优先级低,中断不能及时响应。修改串口中断为最高优先级,...原创 2019-08-21 12:25:03 · 2023 阅读 · 0 评论 -
再写TIMER+DMA驱动GPIO
早两年前写过用DMA直接驱动GPIO的文章,当时写的只是比较原理性的,没有实例。最近在用到单线总线,上了RTOS,为了提高效率,减少内核的浪费,就想到用TIMER+DMA+GPIO去输出单线总线时序。上图是单线总线的时序,常规的方法就直接控制IO输出,电平的间隔用延时去控制,代码如下:void SC50X0B_SDA(unsigned char data) { unsig...原创 2018-10-13 00:52:04 · 4560 阅读 · 8 评论 -
物联网核心之MQTT移植
在上一篇文章中,只是讲了MQTT的主要内容,至于怎么移植到STM32上,怎么使用才是最重要的关键。这里使用的平台是RT8711的WIFI SOC,使用的LWIP跟FreeRTOS,移植使用跟STM32+LWIP是没什么区别的。 先在Github上找到Eclipse的开源MQTT客户端程序https://github.com/eclipse/paho.mqtt.embedded-c.原创 2017-09-11 23:01:13 · 16829 阅读 · 10 评论 -
造实用个性的Log输出宏
我们在调试嵌入式程序的时候,用IDE+调试器是最直接的方式,但是很多时候我们还需要用串口输出来打印一些Debug的信息,来帮助我们调试。串口调试最简单的方式的话,最简单就是用printf来打印。但是只有Printf不能很好的控制输出的信息,或者让代码变得很臃肿。我们就用宏来封装下Printf,让它更好的使用,更加便利。这里给大家分享一个我在别人基础再改进的Log宏代码。原创 2017-08-30 21:55:11 · 1311 阅读 · 0 评论 -
外部SRAM实验,让STM32的外部SRAM操作跟内部SRAM一样
前几天看到论坛有人在问这个问题,我特意去做了这个实验,这样用外部SRAM就跟用内部SRAM一样,不用自己去申请内存,也不用考虑什么内存地址,一切让编译器自己去解决。 废话不多说,我直接拿原子哥的战舰开发板库函数版的外部SRAM实验来修改。在库函数的system_stm32f10x.c这个初始化文件当中其实就已经有外部SRAM的初始化,我们只要增加“#define DATA_I原创 2015-03-22 08:55:49 · 4091 阅读 · 0 评论 -
用DMA直接驱动GPIO,实现GPIO最高输出速率
先上图:STM32F303芯片,72M的主频可以看到GPIO的达到了14.4M的翻转速率, 再来上代码:RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);GPIOC->MODER |= 0x55555555;GPIOC->OSPEEDR |= 0xFFFFFFF;GPIOC->PUPDR |= 0x55555原创 2015-03-22 08:54:20 · 3550 阅读 · 2 评论 -
F3不能用位带操作GPIO之原由
最近用到STM32F303,在修改IO的时候,觉得用库操作太麻烦了,要自己一个一个修改,用宏定义也不解决,自然就会想到用位带操作。查M4的手册知道M4也是支持位带操作,F3系列也是属于M4内核,而且在405也是用位带操作,觉得F303也是一样可以做位带操作。直接先修改一个IO,调试却发现在,IO电平始终没有变化。查IO,初始化没有问题。再查位带宏定义:#define BITBAND(addr,原创 2014-11-04 09:47:45 · 640 阅读 · 1 评论 -
Windows环境下CubeMX+VScode+Gcc+OpenOCD开发STM32环境搭建
为啥要这么麻烦嘛,这个不解释,生命在于折腾,相信很多人都在折腾,也很多人去百度过,按百度的教程估计还是有很多人不会弄,所以写这篇教程为那些还没有折腾成功的砖工提供点线索。 VScode现在真的很强大,界面跟配色都是一流,再加个各种强大的插件,使VScode越来越成为万能的IDE,可以开发各种语言。这里不多说,VScode相信绝大部分的人都会安装使用,就不再重复了。...原创 2019-09-08 01:13:07 · 7398 阅读 · 6 评论