你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

总计77条实战经验——请查收!(五)

[复制链接]
eefishing 发布时间:2019-12-18 15:32
61、NRF24L01工作在2.4GHz的频段,由于频段频率较高,所以传输速率较快,为2Mbps。
" D) c3 w3 }1 y. R' s
62、STM32的闪存模块由:主存储器、信息块和闪存存储器接口寄存器3个部分构成。
; Z. E- |- q9 j
主存储器用来存放代码和const常量;信息块由两个部分组成:启动程序代码、用户选择字节。

' S$ B+ b) o, l1 ?, |) n( j5 b
其中启动程序代码为ST公司自带的启动程序,用于串口下载。
* O# A1 t, O+ y+ H# c
最后的闪存存储器接口寄存器用于控制整个对闪存区域的操作。
# @2 h( a/ J/ O6 G; m, [
63、CPU的运行速度比FLASH的操作速度快的多,一般FLASH的最快访问速度≤24Mhz。如果CPU的速度超过这个频率,那么在读取FLASH的时候必须加入等待时间(FLASH_ACR设置)。

7 H" J& t/ \# E5 m: q
64、FLASH编程时,写入必须为半字(16位)。并且在写入的时候必须保证所写区域的数据必须为0xFFFF。

) N9 H( F  Z. a/ f4 C
65、STM32的FSMC有HADDR[27:0],其中[27:26]用来选择BANK区域的4个不同块。
6 \  G# W* G# j' P' A: e3 j7 ^8 `
剩下的[25:0]则用来连接外部存储区域的地址线FSMC_A[25:0]。
3 D7 `, W4 N* T9 q
如果数据宽度是8bit,此时的HADDR[25:0]和FSMC_A[25:0]是完全对应的。

! q4 W1 x2 `& `
如果数据宽度是16bit,此时的HADDR[25:1]和FSMC_A[24:0]是对应起来的。
* f8 \8 {! j4 |) ?2 g$ p7 _# a
需要注意:无论数据宽度是多少,外部的FSMC_A[0]和A[0]总是对应的。
7 w4 d& _6 @- R! ?
66、关于LB和UB的信号控制是由硬件自动控制的,当AHB的数据宽度小于外部存储器的数据宽度时,此时LB和UB的控制信号自动产生(比如字节读取/写入16bit的外部存储器)。
3 m/ X' Q9 @) i5 v4 {+ p, n
67、 __attribute__ (函数属性、变量属性、类型属性等)。如果在使用SRAM时,可以采用u32 sram_array[xx] __attribute__ ((at(0x68000000))代表将外部SRAM的空间全部给了sram_array这个变量,他具有在at0x68000000这个地址的属性。

( c/ L; U& l4 d2 Z4 q/ W
往里面写值就直接在SRAM里面写值。

. t: b  |& x/ D( t) c1 k* _* j. `
68、

/ ?+ q  A: K! Z/ V7 k+ {7 S
1.png

" n7 Q  x  s2 s; q- F0 c* ?3 V4 \$ x8 J
内存管理有一种方式叫做分块式内存管理。
! H7 r4 z+ `4 P
注意表中的分配方向,从顶到底。每一项对应一个内存块。里面的数值代表了内存池的状态:如果为0,表示该内存没有被分配;如果非0,那么数值的大小就表示了该块内存被连续占用的内存数。

9 s! l2 W) ~) }, h5 B( C
比如说数值为20,意思是包括该项在内的内存块被连续占用了20块分给了指针。
* Q8 B) h5 w- u7 {6 I
69、SD卡的分类:

7 v; s  }, X* x3 L
2.png
/ X: d0 j4 ~! H) t+ D+ Y! M6 [8 t
一般的SD卡支持两种传输模式:SD卡模式(SDIO)、SPI模式。显然前面一种是专用模式,所以速度比较快。

* h% }! o' ^8 O1 B" G( q/ A
70、常用的汉字内码系统有GB2313、GB13000、GBK、BIG5(繁体)。其中GB2313只有几千个汉字,而GBK则有2万多汉字。
) F+ d( n$ V5 g3 L
71、要显示汉字,采用的方式如果用点阵的形式是不可取的,因为这无法查找汉字。采用的方式就是内码系统。

0 S* f% W# t. L) \+ \
GBK标准中,一个汉字对应2个字节:前者称为区(0x81~0xFE)后者为(0x40~0x7E)和(0x80~0xFE)。前者有126个区,后者有190,那么可以显示的汉字数量有126*190=23940个。

! M# [+ L: a$ t3 L3 T/ G1 Y7 c
根据这两个值用来查找字库,字库中存放的还是每个汉字的点阵数据。
8 K0 n% r) ^& l: ~% S
这个字库非常大,如果是16*16的字体,那么一个字体就需要32个字节,如此说来需要23940*32=748K的空间,可见非常大,所以需要外部的Flash来存储这个字库。
+ J2 ~9 e  O* U+ D" y
72、由于汉字内码系统不具有国际通用性,但是Unicode几乎把所有的语言都放置进来,这样在单片机中操作汉字时,就需要将GBK和Unicode转化。
9 H+ {$ h# g7 o4 r' H  M
尤其是在FATFS中,创建中文文件名和读取中文文件信息时需要将Unicode换转为GBK后再进行修改操作,再反转换成Unicode保存修改。
" @+ L& D0 ?, e7 b* @) w# p
这么说,两者的存在是由于标准的不统一,并且Unicode中只有6064个汉字,而GBK显然是一种汉字扩展。
$ H/ J0 n9 D  q/ Q: U2 i8 W- K9 j
73、BMP图片编码的顺序是从左到右,从下到上。
" @# O4 o5 B3 f6 w6 ?
74、VS1053是一款高性能的数字音频解码芯片,从SD卡中将mp3等音乐音频文件通过SPI送给VS1053后,由其进行音频解码,输出音乐给耳机。

5 d, _) j, [  L, H3 o+ `
耳机驱动可以采用TDA1308芯片,这款芯片为AB类耳机驱动芯片。
+ [& f) \5 B: Y+ o% e
3.png
75、IAP(In Application Programming)在应用编程是为了后期开发更新程序方便而提出的概念。具体的实现方法如下图所示:
, E3 W) p! v! Y* g- t2 Z
4.png
" Y. B9 u3 y9 ~( p
在普通编程中,flash中的code是通过JTAG和ISP等工具下载到单片机中。

* r0 M( Z5 ^: v
而在IAP编程中,flash被分区为A和B两个区域,A区域只允许用USB/USART等方式下载,此区域作为更新B区域的代码用。

+ p- U! s. U. F! G; W
B区域则是用户的code区域,真正的代码在这里被执行,放置的就是app。
$ a1 h) M3 H0 j2 t) `- f- S7 ~
5.png
" b4 e3 A! M' E
上图表示STM32正常运行的流程图,可以看到上电复位后系统从0x80000004处开始运行程序,这里放置的是复位中断向量,然后跳转至复位中断程序入口后再跳转至main函数运行用户的程序。
2 b$ R6 Z; X4 I; t' I2 ?
6.png

7 k1 F! c+ _9 j' j2 i: G, c3 C
上图表示加入IAP后的STM32程序运行流程图。可以看到上电复位后跳到IAP程序的main函数处运行IAP过程(这个过程就是把下面灰底色块的程序代码烧进B区域à代码更新)。

0 L; `+ k4 E! K
后面的过程和STM32正常运行一样,如果出现中断请求,还是跳转到A区域中的中断向量表中,然后再跳转到B区域的中断服务入口。

8 t$ n2 a* g! G# @; a+ `, M2 y2 `) ?) C
76、USB有四根线,VCC、GND、D+、D-。在USB主机上,D+和D-均通过一个15K的电阻接地,这样两条线均为低电平。
; O" s2 f  S" f! l! N5 u$ m) \
在USB设备中,对于高速设备会在D+通过一个1.5K的电阻接到VCC,而低俗设备会在D-通过一个1.5K的电阻接到VCC。

, A. K& h5 @8 [: F5 C- N
这样主机就可以通过D+和D-的高电平的到来来检测是否有设备接入,并且识别高低速设备。
0 ]! T4 [4 r' V  H) `2 V# y% n
77、UCOSII是一种实时操作系统,具有执行效率高、占有空间小(最小内核2KB)、实施性能优良、扩展性强和移植性强等优点。
& {& U) [0 o  P  d* p1 N
7.png

. j! b0 `6 C; L" }
UCOS具有多任务并发工作的特点(注意,任何时候只有一个任务能够占用CPU。并发只是任务轮流占用CPU而不是同时工作)。
8 {3 q# s* f9 D+ Y- _) W
最大支持255个任务并发工作。
) S# s" D, T$ o3 O
赞 收藏 评论0 发布时间:2019-12-18 15:32

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版