在HAL库中的微妙网络缓存级别最高延迟的延迟怎么弄

【NUCLEO-F412ZG试用体验】小项目之大心得(STM32CubeMX+时钟配置+基于HAL库的DHT11驱动) - STM32/STM8技术论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
Hot [学院]
【NUCLEO-F412ZG试用体验】小项目之大心得(STM32CubeMX+时钟配置+基于HAL库的DHT11驱动)
20:19:56  
本帖最后由 smilepeng 于
20:28 编辑
之所以叫小项目之大心得呢,是因为之前自己学习STM32的时候都是用F103系列的单片机,当然他也是基于官方的标准库开发的,刚拿到F412的时候自己也是一头雾水,除了跟大家一样测试了官方给的例程后,看看程序都是在STM32CubeMX配置后基于HAL库开发出来的程序,与自己之前学习的正点原子的程序比起来,看的略显复杂。所以我决定先从STM32CubeMX下手。下载了软件安装好库文件接下来就是配置单片机了。
当然STM32Cube的库中已经集成了NUCLEO-F412的配置文件了。那么我们就直接选择他来进行下一项。看图。。。
1.png (104.57 KB, 下载次数: 18)
20:16 上传
QQ截图39.jpg (58.47 KB, 下载次数: 15)
18:47 上传
3.jpg (48.8 KB, 下载次数: 15)
18:52 上传
按这个顺序配置下来,直接生成了MDK5的配置代码,现在我们只需要写一下main函数就能实现流水灯的效果。
我们来看看生成的MAIN.C文件中有哪些函数。。。
void SystemClock_Config(void);
void Error_Handler(void);
static void MX_GPIO_Init(void);
第一个是系统时钟的配置函数,第二个是错误处理函数,第三个就是GPIO的端口配置了。
系统时钟的配置上感觉有点乱&&现在自己配置了一个,看图和代码
4.jpg (66.7 KB, 下载次数: 14)
19:33 上传
//时钟系统配置函数
//Fvco=Fs*(plln/pllm);
//SYSCLK=Fvco/pllp=Fs*(plln/(pllm*pllp));
//Fusb=Fvco/pllq=Fs*(plln/(pllm*pllq));
//Fvco:VCO频率
//SYSCLK:系统时钟频率
//Fusb:USB,SDIO,RNG等的时钟频率
//Fs:PLL输入时钟频率,可以是HSI,HSE等.
//plln:主PLL倍频系数(PLL倍频),取值范围:64~432.
//pllm:主PLL和音频PLL分频系数(PLL之前的分频),取值范围:2~63.
//pllp:系统时钟的主PLL分频系数(PLL之后的分频),取值范围:2,4,6,8.(仅限这4个值!)
//pllq:USB/SDIO/随机数产生器等的主PLL分频系数(PLL之后的分频),取值范围:2~15.
//晶振为8M的时候,推荐值:plln=200,pllm=8,pllp=2,pllq=2.
//得到:Fvco=8*(200/8)=200Mhz
//& &&&SYSCLK=200/2=100Mhz
//& &&&Fusb=200/8=25Mhz
//返回值:0,成功;1,失败
void Stm32_Clock_Init(u32 pllm,u32 plln,u32 pllp,u32 pllq,u32 pllr)
& & HAL_StatusTypeDef ret = HAL_OK;
& & RCC_OscInitTypeDef RCC_OscInitS
& & RCC_ClkInitTypeDef RCC_ClkInitS
& & __HAL_RCC_PWR_CLK_ENABLE(); //使能PWR时钟
& & //下面这个设置用来设置调压器输出电压级别,以便在器件未以最大频率工作
& & //时使性能与功耗实现平衡,此功能只有STM32F42xx和STM32F43xx器件有,
& & __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);//设置调压器输出电压级别1
& & RCC_OscInitStructure.OscillatorType=RCC_OSCILLATORTYPE_HSE;& & //时钟源为HSE
& & RCC_OscInitStructure.HSEState=RCC_HSE_BYPASS;
& & RCC_OscInitStructure.PLL.PLLState=RCC_PLL_ON;//打开PLL
& & RCC_OscInitStructure.PLL.PLLSource=RCC_PLLSOURCE_HSE;//PLL时钟源选择HSE
& & RCC_OscInitStructure.PLL.PLLM= //主PLL和音频PLL分频系数(PLL之前的分频),取值范围:2~63.
& & RCC_OscInitStructure.PLL.PLLN= //主PLL倍频系数(PLL倍频),取值范围:64~432.&&
& & RCC_OscInitStructure.PLL.PLLP= //系统时钟的主PLL分频系数(PLL之后的分频),取值范围:2,4,6,8.(仅限这4个值!)
& & RCC_OscInitStructure.PLL.PLLQ= //USB/SDIO/随机数产生器等的主PLL分频系数(PLL之后的分频),取值范围:2~15.
& & RCC_OscInitStructure.PLL.PLLR=
& && && && && & ret=HAL_RCC_OscConfig(&RCC_OscInitStructure);//初始化
& & if(ret!=HAL_OK) while(1);
& & //选中PLL作为系统时钟源并且配置HCLK,PCLK1和PCLK2
& & RCC_ClkInitStructure.ClockType=(RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2);
& & RCC_ClkInitStructure.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK;//设置系统时钟时钟源为PLL
& & RCC_ClkInitStructure.AHBCLKDivider=RCC_SYSCLK_DIV1;//AHB分频系数为1
& & RCC_ClkInitStructure.APB1CLKDivider=RCC_HCLK_DIV2; //APB1分频系数为2& &100MHz/2=50MHz
& & RCC_ClkInitStructure.APB2CLKDivider=RCC_HCLK_DIV1; //APB2分频系数为1
& & ret=HAL_RCC_ClockConfig(&RCC_ClkInitStructure,FLASH_LATENCY_3);//同时设置FLASH延时周期为5WS,也就是6个CPU周期。
& && && && && &
& & if(ret!=HAL_OK) while(1);
按照图上给的数据配置出来的函数系统时钟正好就是F412的最高频率100MHZ,Stm32_Clock_Init(8,200,2,7,2);& &//设置时钟,100Mhz
现在我们完成了STM32CubeMX和系统时钟的配置,现在可以尽情的让流水灯流起来了。。。当然还有个任务就是运用HAL库开发DHT11的驱动呢
我们可以把标准库和HAL库对比一下,当然只是局部的。。。
以IO口的配置做例子
& & GPIO_Initure.Pin=GPIO_PIN_12; //PB1,0
& & GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;&&//推挽输出
& & GPIO_Initure.Pull=GPIO_PULLUP;& && && & //上拉
& & GPIO_Initure.Speed=GPIO_SPEED_HIGH;& &&&//高速
& & HAL_GPIO_Init(GPIOB,&GPIO_Initure);
& & HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_SET);& && &&&
& && &&&GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;& && && && && && && && && && && &//PG11端口配置
& && && &GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;& && && && && && &//推挽输出
& && && &GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
& && && &GPIO_Init(GPIOG, &GPIO_InitStructure);& && && && && && && && && && && &//初始化IO口
& && && &GPIO_SetBits(GPIOG,GPIO_Pin_11);
可以看出一些函数上加了HAL的字样,其实HAL库和标准库总体相似性还是很大的,HAL库将会更完善。
dht11的IO配置好后写出底层底层驱动,在配置好串口的函数(后续会介绍),直接开始打印测试。。。
IMG_235.jpg (896.1 KB, 下载次数: 17)
20:14 上传
20:18 上传
点击文件名下载附件
下载积分: 积分 -1 分
2.09 KB, 下载次数: 33, 下载积分: 积分 -1 分
11:41:53  
12:49:24  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
好心得,顶一下
12:49:38  
希望继续发热,
18:12:16  
13:23:08  
不错不错。。。
09:21:04  
15:59:58  
工程师职场
Powered by君,已阅读到文档的结尾了呢~~
fhi[理学]1-2010-2011-高级操作系统-概述/&高级操作系统&br /&ADVANCED OPERATING SYSTEM&br /&北京大学信息学院 EECS of Peking University 2010-2011&br /&大纲&br /&?&br /&? ? ?&br /&REVIEW:操作系统做什么? 操作系统定义及作用 几个重要的基本概念 Windows操作系统结构&br /&教学目的..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
fhi[理学]1--高级操作系统-概述
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口网上好多说HAL库的不好的,你们怎么看? - STM32 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 2018|回复: 34
网上好多说HAL库的不好的,你们怎么看?
在线时间44 小时
主题帖子好友
高级会员, 积分 703, 距离下一级还需 297 积分
高级会员, 积分 703, 距离下一级还需 297 积分
刚刚接触HAL库的我,小白一枚,在网上搜了很多关于HAL库的资料,很多人吐槽HAL库的效率低,还有一些BUG,大神们你们怎么看?
在线时间103 小时
主题帖子好友
金牌会员, 积分 1659, 距离下一级还需 3341 积分
金牌会员, 积分 1659, 距离下一级还需 3341 积分
& & 举个例子,当你要把一个外部时钟驱动改成内部时钟驱动时,使用标准库的朋友,要抓瞎了吧,没1,2小时,能搞得定吗?对很多初学者来说,在哪个函数里改可能都不知道。所以使用HAL库是有好处的,至少可以减轻工作量,提高工作效率。
& & 至于库函数执行效率高的说法,这个我得承认,使用库函数比HAL库是快一些。但是,对一个应用来说,你在程序中总不能不停的对某个部件在初始化吧,很多场合初始化也就开机做一次就好了,难道我们就不能容忍开机时多运行了那么几个uS的时间吗?
& & HAL库中有些函数是在判断各种各样的情况,然后运行一个满足条件的函数,所谓的效率低,其实就是判断运行的多了一些,如果按标准库函数的做法,自己直接添加写一个HAL函数也是没什么难的。
& & 再说如果老是抱怨HAL的效率低下的话,那么你检查一下,你的程序中有没有用到了延迟函数?并且你的程序为什么不用汇编写呢?
在线时间944 小时
ST金币2074
主题帖子好友
不是效率的问题 只是有些功能函数 明显是可以再优化话点 或者说可以再全面点的&&既然推出这样的库& &那么肯定是要尽量做的好点& &或者个人理解&&如果我提的是错误的&&那么不管是国内的或者原厂的技术人员 能给解惑下 而不是视而不见& &如果我提的是对的&&那就更不应该这样视而不见& &我只是觉得是他们态度的问题&&:
在线时间170 小时
ST金币1883
主题帖子好友
金牌会员, 积分 3120, 距离下一级还需 1880 积分
金牌会员, 积分 3120, 距离下一级还需 1880 积分
直接开始用CUBE 学的,简单的学了51就直接到STM32了,开始以为找到捷径了,但是越学越发现,HAL库并不是降低门槛了,你没有学透的化,根本不可能用好CUBE。很多大牛用CUBE设置好基本的东西,在这个基础上改,可以省掉一些时间。看看原子的HAL库例程 还有ST的官方例程和CUBE给你生成的并不一样, 并不好套用。
在线时间198 小时
ST金币1485
主题帖子好友
金牌会员, 积分 2993, 距离下一级还需 2007 积分
金牌会员, 积分 2993, 距离下一级还需 2007 积分
这是一种趋势,越方便开发的库,效率肯定是越低的,bug的确是有,待完善吧
在线时间40 小时
ST金币1283
主题帖子好友
高级会员, 积分 578, 距离下一级还需 422 积分
高级会员, 积分 578, 距离下一级还需 422 积分
这是一种趋势,越方便开发的库,效率肯定是越低的,bug的确是有,待完善吧
说的非常好
在线时间230 小时
主题帖子好友
金牌会员, 积分 3107, 距离下一级还需 1893 积分
金牌会员, 积分 3107, 距离下一级还需 1893 积分
效率低,对于小白或者刚接触的人,不好上手,代码可读性不强,还是驱动驱动库好用,我一直用标准驱动库开发
在线时间944 小时
ST金币2074
主题帖子好友
我也感觉不是很好 而且有些外设的函数 感觉设计不是很合理 使用很糟心&&我当时把遇到的问题 有上传中文网站 可惜他们视而不见&&没有被审核通过 连回访电话也没有&&很失望~
在线时间565 小时
ST金币2172
主题帖子好友
鸡肋,,,,,,,,,,,,,,,,,,,,
在线时间29 小时
主题帖子好友
中级会员, 积分 444, 距离下一级还需 56 积分
中级会员, 积分 444, 距离下一级还需 56 积分
我也感觉不是很好 而且有些外设的函数 感觉设计不是很合理 使用很糟心&&我当时把遇到的问题 有上传中文网站 ...
大神啊!!
在线时间610 小时
ST金币2584
主题帖子好友
趋势呀,降低门槛,反对的多是苦读汇编的
在线时间224 小时
主题帖子好友
会玩的,就很好,不会玩的,就不好
在线时间187 小时
ST金币1234
主题帖子好友
金牌会员, 积分 2881, 距离下一级还需 2119 积分
金牌会员, 积分 2881, 距离下一级还需 2119 积分
会玩的,就很好,不会玩的,就不好
很好& && && &&&
站长推荐 /2
Tel: 3-8064
备案号: 苏ICP备号-2
|||意法半导体STM32/STM8技术社区
Powered by 上传我的文档
 下载
 收藏
趁现在的双手还能拥抱彼此,趁我们还能呼吸,去见你想见的人,做你想做的事。
 下载此文档
正在努力加载中...
软交换系统中SNMP_CORBA网关的设计和百实现
下载积分:1250
内容提示:软交换系统中SNMP_CORBA网关的设计和百实现
文档格式:PDF|
浏览次数:1|
上传日期: 13:37:29|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1250 积分
下载此文档
该用户还上传了这些文档
软交换系统中SNMP_CORBA网关的设计和百实现
官方公共微信Hal库中功能库X_CUBE_系列库如何使用? - STM32 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 582|回复: 4
Hal库中功能库X_CUBE_系列库如何使用?
在线时间14 小时
主题帖子好友
初级会员, 积分 102, 距离下一级还需 98 积分
初级会员, 积分 102, 距离下一级还需 98 积分
Hal库与stm32cube结合起来,渐渐已经形成了趋势。很多应用已经不再用标准库STD了。与HAL库配合的一些功能库就是X_CUBE_系列库。
比如:X-CUBE-SPN8&&STM32Cube扩展库——低压BLDC电机驱动
http://www.stmcu.org/document/detail/index/id-216912
这个系列的库如何使用?在stm32cube这个环境中植入,还是在keil中植入?
是否有说明文档?
在线时间187 小时
ST金币1234
主题帖子好友
金牌会员, 积分 2881, 距离下一级还需 2119 积分
金牌会员, 积分 2881, 距离下一级还需 2119 积分
也不知道,同问
在线时间730 小时
ST金币1602
主题帖子好友
在线时间208 小时
ST金币1754
主题帖子好友
Cube会自动生成框架,剩下的还是要找资料来写程序了,楼主找到资料的话分享下!
这个是我找的F4的,
(4.48 MB, 下载次数: 119)
08:57 上传
点击文件名下载附件
点我下载F4_HAL用户指南
在线时间825 小时
ST金币3467
主题帖子好友
来学习了。。
站长推荐 /2
Tel: 3-8064
备案号: 苏ICP备号-2
|||意法半导体STM32/STM8技术社区
Powered by

我要回帖

更多关于 数据库隔离级别 详解 的文章

 

随机推荐