STM32的HAL库如何开启FPU?

经验分享忙卟迭 回复了问题 • 5 人关注 • 8 个回复 • 3701 次浏览 • 2015-02-07 16:24 • 来自相关话题

关于freertos调试

问题困惑日日夜夜 回复了问题 • 3 人关注 • 2 个回复 • 2087 次浏览 • 2015-02-06 15:23 • 来自相关话题

MDK5.1怎么用cube

新手交流日日夜夜 回复了问题 • 6 人关注 • 5 个回复 • 1872 次浏览 • 2015-02-06 13:08 • 来自相关话题

用stm32cubeMx生成的GPIO初始化不起作用,奇怪的很!

问题困惑leefine 回复了问题 • 4 人关注 • 6 个回复 • 1730 次浏览 • 2015-02-05 16:18 • 来自相关话题

STM32cubef1 的rtos系统使用 是single mangement相关函数不能使用

问题困惑日日夜夜 回复了问题 • 3 人关注 • 2 个回复 • 1068 次浏览 • 2015-02-05 11:23 • 来自相关话题

关于usart利用DMA进行环形存储和数据读取的研究

回复

经验分享admin 回复了问题 • 2 人关注 • 2 个回复 • 2516 次浏览 • 2015-02-04 13:31 • 来自相关话题

334的CUBEMX打开里面缺少NVIC设置

问题困惑雨竹 回复了问题 • 2 人关注 • 3 个回复 • 1016 次浏览 • 2015-02-01 23:28 • 来自相关话题

STM32USB用STM32Cube来生成USB转串口通讯的程序?有知道的吗?

问题困惑ZJZTO 回复了问题 • 8 人关注 • 11 个回复 • 3164 次浏览 • 2015-01-31 11:14 • 来自相关话题

前天研究HAL库,好是郁闷和3.5库差别太大

经验分享中子星 发表了文章 • 3 个评论 • 1583 次浏览 • 2015-01-30 08:02 • 来自相关话题

感觉好多功能没有,不知道官方是没时间搞还是有别的原因。找个一本HAL库参考手册,写的太过简单。
于是我就打开cube下载的芯片包,结果这里面有个参考手册相当给力。
D:\Documents\ARM\STM32CubeMX\STM32Cube_FW_F1_V1.0.0\Drivers\STM32F1xx_HAL_Driver
在这个目录下面,也可能你的芯片包和我的不一样,反正有,你找找。
STM32F103xG_User_Manual.chm 这是软件的名字。帖子插入图片不方便所以没图。 查看全部
感觉好多功能没有,不知道官方是没时间搞还是有别的原因。找个一本HAL库参考手册,写的太过简单。
于是我就打开cube下载的芯片包,结果这里面有个参考手册相当给力。
D:\Documents\ARM\STM32CubeMX\STM32Cube_FW_F1_V1.0.0\Drivers\STM32F1xx_HAL_Driver
在这个目录下面,也可能你的芯片包和我的不一样,反正有,你找找。
STM32F103xG_User_Manual.chm 这是软件的名字。帖子插入图片不方便所以没图。

HAL库里面为什么没有 GPIO_Write 类似的功能函数呀

问题困惑中子星 回复了问题 • 2 人关注 • 2 个回复 • 1066 次浏览 • 2015-01-29 07:15 • 来自相关话题

福音:stm32Cubemx支持F1系列了,已经有库可以更新了!下载地址见本站网盘

其他分享王建 回复了问题 • 5 人关注 • 1 个回复 • 1698 次浏览 • 2015-01-27 12:54 • 来自相关话题

cube HAL库同以前的标准库

问题困惑admin 回复了问题 • 2 人关注 • 1 个回复 • 1152 次浏览 • 2015-01-23 12:50 • 来自相关话题

哎哟,我去!今天才发现个定时器TIM的问题,计数UP的时候Period不能是0,要不然不能中断

经验分享mantishell 回复了问题 • 3 人关注 • 2 个回复 • 3270 次浏览 • 2015-01-21 22:51 • 来自相关话题

(转)单片机/嵌入式上位机编程工具哪个好用?

问题困惑admin 发表了文章 • 5 个评论 • 1140 次浏览 • 2015-01-20 21:29 • 来自相关话题

目前用在单片机嵌入式上位机编程的开发工具有很多,让很多刚入门的工程师们无所适从。那么用来编写单片机嵌入式上位机的工具有那几款呢?
(1)LabVIEW:是NI推出的,和C和BASIC开发环境类似,但是LabVIEW与其他计算机语言有很大区别,其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。特点是:采用了通用的硬件,可以通过改变软件在计算机上实现多种仪器的功能。被公认为测试之王。
(2)VB:是由Microsoft公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。

(3)VS:它是微软提供的一个工具集,由各种各样的工具组成。VS可以支持C/C++、VB、JAVA、C#编程。然了一次只能支持一种编程方式。在VS安装完成,第一次运行的时候会让你选择常用语言,如果你选择C/C++,那么他就成了能够进行C/C++编程的平台也许就是你所说的VC了。如果不想用C/C++的话,只需要修改一下他的初始化设置,选择别的编程语言,就成为了另一种的语言的编程环境了。所以总的来说它是一个集成平台。

(4)VC:是微软的C++开发工具,有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。VC++有便利的除错工具,特别是包含了微软视窗程式设计(Windows API)、三维动画DirectX API,Microsoft .NET框架,开发速度比较快。

(5)Delphi:是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。似乎很多人都觉得Delphi已经没落了、过时了,好多人都没听过Delphi。但我不这么认为。“真正的程序员用c,聪明的程序员用Delphi”这句话是对Delphi最经典、最实在的描述。

(6)C#:是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。 应该是最近几年应用比较多的,为什么?因为太简单,很多功能拖个控件就搞定;

(7)JAVA:具有卓越的通用性、高效性、平台移植性和安全性。关于JAVA小编就不多说了,小编本身对其也不熟悉。留待各位大侠点评。

上面讲到的几种开发工具可谓各有千秋,上面只是做了一个列举和简要说明,并加了一些个人粗浅的看法。你们觉得那一款更好用呢?它的优点在哪里?未来会否会出现大一统的格局,有一款或几款工具能成为绝对的主导?你觉得谁会胜出?为什么?

转自:http://www.eefocus.com/embedded/335314 查看全部
目前用在单片机嵌入式上位机编程的开发工具有很多,让很多刚入门的工程师们无所适从。那么用来编写单片机嵌入式上位机的工具有那几款呢?
(1)LabVIEW:是NI推出的,和C和BASIC开发环境类似,但是LabVIEW与其他计算机语言有很大区别,其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。特点是:采用了通用的硬件,可以通过改变软件在计算机上实现多种仪器的功能。被公认为测试之王。
(2)VB:是由Microsoft公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。

(3)VS:它是微软提供的一个工具集,由各种各样的工具组成。VS可以支持C/C++、VB、JAVA、C#编程。然了一次只能支持一种编程方式。在VS安装完成,第一次运行的时候会让你选择常用语言,如果你选择C/C++,那么他就成了能够进行C/C++编程的平台也许就是你所说的VC了。如果不想用C/C++的话,只需要修改一下他的初始化设置,选择别的编程语言,就成为了另一种的语言的编程环境了。所以总的来说它是一个集成平台。

(4)VC:是微软的C++开发工具,有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。VC++有便利的除错工具,特别是包含了微软视窗程式设计(Windows API)、三维动画DirectX API,Microsoft .NET框架,开发速度比较快。

(5)Delphi:是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。似乎很多人都觉得Delphi已经没落了、过时了,好多人都没听过Delphi。但我不这么认为。“真正的程序员用c,聪明的程序员用Delphi”这句话是对Delphi最经典、最实在的描述。

(6)C#:是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。 应该是最近几年应用比较多的,为什么?因为太简单,很多功能拖个控件就搞定;

(7)JAVA:具有卓越的通用性、高效性、平台移植性和安全性。关于JAVA小编就不多说了,小编本身对其也不熟悉。留待各位大侠点评。

上面讲到的几种开发工具可谓各有千秋,上面只是做了一个列举和简要说明,并加了一些个人粗浅的看法。你们觉得那一款更好用呢?它的优点在哪里?未来会否会出现大一统的格局,有一款或几款工具能成为绝对的主导?你觉得谁会胜出?为什么?

转自:http://www.eefocus.com/embedded/335314

USART的另类应用协议:DMX512协议

经验分享admin 发表了文章 • 1 个评论 • 2101 次浏览 • 2015-01-20 21:19 • 来自相关话题

DMX512 协议是美国剧场技术协会( United States Institute for Theater Technology, USITT) 制定的数字多路复用协议, 其制定的初衷是为了使舞台、剧场等地所使用的众多的调光器和控制器能相互兼容。虽然它不是一个行业或国家标准, 但是由于它的简单性和实用性, 自从出台以来, 得到了世界各地生产商和使用者普遍承认,这个协议在LED控制方面应用很广泛,利用STM32 USART可以高速传输的特性,我们很容易用STM32来实现DMX512协议。
(1)数据的格式及传输
DMX512 协议规定数据以数据包的形式通过异步通讯的方式进行传输。每个数据包由若干数据帧组成, 每帧数据包括1 位低电平起始位、8 位数据位和2 位高电平停止位。DMX 协议要求数据传输的波特率为250kb/s, 亦即每位的传输时间为4us, 每帧数据的传输时间为44us, 它支持多达512 帧数据传输, 每帧数据与相应的控制支路相对应。数据包的传送要符合一定的格式和时序要求。为了使接收器能够分辨出第一帧数据, 每一个数据包以一个不短于88us 的低电平信号为起始信号, 即所谓的“Break”信号, 接收器接收到“Break”信号就准备接受随后而来的数据帧; 紧接着“Break”信号之后是不短于8us 的高电平信号M. a. b ( Mark after Break) ; 之后就是数据帧。在DMX512 协议中, M. a. b 之后的第一帧数据被称
为“Star-t code”, 在协议中规定其为零, 但在实际应用中可以由生产厂家自己确定其具体的值, 以传递特殊消息。“Star-t code”标明其后面的数据是8 位控制信号数据帧。数据帧之间可以有时间间隔, 也可以没有; 同样, 数据包之间可以有时间间隔, 也可以没有。DMX512 协议规定“Break”信号、M. a. b 信号的最短时间, 并规定“Break”信号、M. a. b 信号、
数据帧之间及数据包之间的时间间隔的最大值不得超过1s, 否则做出错处理, 但是DMX512 协议并未对出错处理做任何规定。为了严格实现DMX512 数据的时序要求,“Break”和M. a. b信号我们可以用定时器来实现。
具体的UART配置如下:
USART_InitStructure.USART_BaudRate = 250000;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_2;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure);
发送DMX512信号过程如下,先把UART的TX脚配置为普通的GPIO并输出低电平,然后启动定时器计时88us, 时器到后把TX脚置为高电平并计时8us, 时器到了后在配为UART模式用DMA方式把数据发出。
DMX512信号的接收是个难点,一般直接配为UART接收就行,不需要在UART模式和GPIO模式间切换,但需要在接收过程中检查接收到“Break”信号时的状态是有帧错误出现,并且接收数据全为零,这样的话可以确认已经收到“Break”信号,随后数据正常DMA接收就行了。
下面这个是做出来的效果。。
有兴趣的可以百度搜下资料 查看全部
DMX512 协议是美国剧场技术协会( United States Institute for Theater Technology, USITT) 制定的数字多路复用协议, 其制定的初衷是为了使舞台、剧场等地所使用的众多的调光器和控制器能相互兼容。虽然它不是一个行业或国家标准, 但是由于它的简单性和实用性, 自从出台以来, 得到了世界各地生产商和使用者普遍承认,这个协议在LED控制方面应用很广泛,利用STM32 USART可以高速传输的特性,我们很容易用STM32来实现DMX512协议。
(1)数据的格式及传输
DMX512 协议规定数据以数据包的形式通过异步通讯的方式进行传输。每个数据包由若干数据帧组成, 每帧数据包括1 位低电平起始位、8 位数据位和2 位高电平停止位。DMX 协议要求数据传输的波特率为250kb/s, 亦即每位的传输时间为4us, 每帧数据的传输时间为44us, 它支持多达512 帧数据传输, 每帧数据与相应的控制支路相对应。数据包的传送要符合一定的格式和时序要求。为了使接收器能够分辨出第一帧数据, 每一个数据包以一个不短于88us 的低电平信号为起始信号, 即所谓的“Break”信号, 接收器接收到“Break”信号就准备接受随后而来的数据帧; 紧接着“Break”信号之后是不短于8us 的高电平信号M. a. b ( Mark after Break) ; 之后就是数据帧。在DMX512 协议中, M. a. b 之后的第一帧数据被称
为“Star-t code”, 在协议中规定其为零, 但在实际应用中可以由生产厂家自己确定其具体的值, 以传递特殊消息。“Star-t code”标明其后面的数据是8 位控制信号数据帧。数据帧之间可以有时间间隔, 也可以没有; 同样, 数据包之间可以有时间间隔, 也可以没有。DMX512 协议规定“Break”信号、M. a. b 信号的最短时间, 并规定“Break”信号、M. a. b 信号、
数据帧之间及数据包之间的时间间隔的最大值不得超过1s, 否则做出错处理, 但是DMX512 协议并未对出错处理做任何规定。为了严格实现DMX512 数据的时序要求,“Break”和M. a. b信号我们可以用定时器来实现。
具体的UART配置如下:
USART_InitStructure.USART_BaudRate = 250000;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_2;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure);
发送DMX512信号过程如下,先把UART的TX脚配置为普通的GPIO并输出低电平,然后启动定时器计时88us, 时器到后把TX脚置为高电平并计时8us, 时器到了后在配为UART模式用DMA方式把数据发出。
DMX512信号的接收是个难点,一般直接配为UART接收就行,不需要在UART模式和GPIO模式间切换,但需要在接收过程中检查接收到“Break”信号时的状态是有帧错误出现,并且接收数据全为零,这样的话可以确认已经收到“Break”信号,随后数据正常DMA接收就行了。
下面这个是做出来的效果。。
有兴趣的可以百度搜下资料