博客列表

使用stm32flash串口烧写STM芯片
发表于:2014-10-16 15:47:02 | 分类:STM32
浏览( ) | 评论( )

在Linux下也有串口烧写软件,名为stm32flash。它的安装很简单,在源代码目录下运行make和make install既可,它会将stm32flash这个可执行文件放置在/usr/bin目录下。第一步,将STM32芯片的串口连接到RS232上;第二步,将STM32芯片的BOOT0置高,BOOT1置低;第三步,上电;第四步,执行:    stm32flash /dev/ttyUSB0    stm32flash -w basic_lib_test.hex -v -g 0 /dev/ttyUSB0    它还有read和start的功能,查看help就知道了!So easy! 

在Linux下搭建STM32开发环境攻略(新版)
发表于:2014-10-16 14:28:43 | 分类:STM32
浏览( ) | 评论( )

以前写过一篇博文,是使用Eclipse + CodeSourcery + openocd + stlink-master(stlink-v2)来进行开发的。时隔不久,再回头看发现,其实可以更加简化。使用开源软件习惯了之后,就不太乐意让集成开发环境替自己决定太多事情,所以没有让Eclipse调用openocd,而是单独使用终端,这样可以观察到更直接的打印信息。So, not openocd!Just stlink-master!文本编辑、STM32项目管理和编译会使用Eclipse + CodeSourcery进行,而调试和下载使用stlink-master(stlink-v2)。因为实际上stlink-master的功能openocd都包含了,两个程序任意使用其一既可。第一步:安装Codesourcery;第二步:安装Eclipse,以及它的ARM插件;第三步:安装stlink-master;第四步:连接好硬件,上电;调试第一步:执行st-util(stlink-master安装的可执行文件);调试第二步:执行arm-none-eabi-gdb(CodeSourcery里面的可执行文件);调试第三步:在arm

为什么不能用STM32的定时器中断操作IO口替代定时器PWM功能
发表于:2013-11-27 10:08:22 | 分类:STM32
浏览( ) | 评论( )

P { margin-bottom: 0.08in; }理由一:中断函数调用的指令周期太长。中断函数所占用的时间是us级别(仅仅是寄存器操作,无其他函数调用)。如果DC电机的调制频率为16KHz,周期则为62.5us。1us就会对其产生很大影响。 理由二:中断函数调用的时刻不确定。中断发生到中断函数执行,之间的时间不确定,所以在CC中断和IRQ溢出中断中形成的矩形波会轻微抖动。 理由三:CC和IRQ溢出的咬尾中断。当CC中断和IRQ溢出中断靠得非常近时,低优先级中断在处理过程中被高优先级抢占,造成IO口错误操作。

在Linux下搭建STM32开发环境攻略(旧版)
发表于:2013-09-13 13:03:24 | 分类:STM32
浏览( ) | 评论( )

P { margin-bottom: 0.08in; }A:link { }Linux发行版是64bit的Fedora19,方案选择为:Eclipse+CodeSourcery+OpenOCD+STLINKv2。NO1.准备STM32的开发板,购买仿真器STLINKv2。NO2.安装 CodeSourcery如果是64bit机器,首先确认它能够运行32bit的软件。CodeSourcery可以在官网https://sourcery.mentor.com下载,名称为arm-2013.05-23-arm-none-eabi.bin,安装它。CodeSourcery是编译好的二进制GCC程序包。NO3.安装 OpenOCD实际上,使用下面这个命令就可以:yum install openocdopenocd是开源仿真软件,支持 STLINKv2。NO4.安装 STLINKv2的驱动在google使用关键字搜索即可,也是开源软件。安装它可能要费一番周折,你可能需要先安装systemd-devel,libusb-1.0,autoconf和automake,然后export PKG_CONFIG_PATH=/usr/lo