1、STM32F767的ADC最大工作频率是36Mhz,而 ADC 时钟(ADCCLK)来自 APB2,APB2 频率一般是 108Mhz,我们设置 ADCPRE=01,即4 分频,这样得到 ADCCLK 频率为 27Mhz。
2、FMC是STM32F429/439专有的,是在FSMC的基础上支持SDRAM的升级版本
3、AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2>1,意思是APB2接高速设备;
4、FSMC的三个配置寄存器:FSMC_BCRx(片选控制配置)、FSMC_BTRx(片选时序)(读写时序设置)、FSMC_BWTRx(片选写时序)(写时序设置)。
5、STM32的FSMC有HADDR[27:0],其中[27:26]用来选择BANK区域的4个不同块。剩下的[25:0]则用来连接外部存储区域的地址线FSMC_A[25:0]。如果数据宽度是8bit,此时的HADDR[25:0]和FSMC_A[25:0]是完全对应的。如果数据宽度是16bit,此时的HADDR[25:1]和FSMC_A[24:0]是对应起来的。需要注意:无论数据宽度是多少,外部的FSMC_A[0]和外部设备地址A[0]总是对应的。
6、HADDR[27:26]是不可手动配置的,当选择所在区后会自动赋值。
7、为何FSMC可以用来驱动LCD,原因是FSMC的读写时序和LCD的读写时序很相似,于是把LCD当成一个外部存储器来用。利用FSMC在相应的地址读或写相关数值时,STM32的FSMC会在硬件上自动完成时序上的控制。所以我们只要设置好读写相关时序的寄存器后,FSMC就可以帮我们完成时序上的控制了。对于FSMC驱动LCD有一个比较难理解的地方就是当你的LCD使用16位宽度的数据传输(也就是有16条数据线,就像我上面说的我使用的是16位的80并口)的时候,HADDR和FSMC_A这个地址块的对应问题(使用8位数据则不用考虑此问题)。
1)LCD_CS:LCD片选信号
2)LCD_WR:LCD写信号
3)LCD_RD:LCD读信号
4)DB[17:1]:16位双向数据线
5)LCD_RST:硬复位LCD信号
6)LCD_RS:命令/数据标志(0:命令,1:数据)
7)BL_CTR:背光控制信号
8)T_MISO/T_MOSI/T_PEN/T_CS/T_CLK,触摸屏接口信号
8、CPU中一个地址只能存储一个字节的数据,而当CPU通过地址线访问外部存储器的一个地址时,如果外部储存器的一个地址的数据刚好是八位时(即一个字节),访问一次就可接收过来;CPU为了解决这个问题,只能够再派一个地址去访问外部存储器的同一个地址,把剩下的那个字节也接收过来,之后再接着访问外部存储器的第二个地址,依此类推。。。在此过程中,CPU如果还是把地址线一对一地连接到外部存储器上,那就做不到让自己的第二个地址还继续访问同一个地址了。
于是,人们帮了CPU一把,让它每一回访问时还是照旧把自己内部的地址按二进制拆分放到HADDR的0~25上(如下图)
然后,到了FSMC_A一端,人们选择性地去掉HADDR[0],然后才把把剩余的25根依次接到FSMC_A上(人们之所以这么做,正是因为他们发现了一个规律,那就是,通过HADDR[1]是0还是1却正好能够区别外部存储器上的0地址和1地址,而通过HADDR[2]和HADDR[1]是10还是11又正好能够区别外部存储器上的2地址和3地址。。。依此类推,下一个就是通过HADDR[3]HADDR[2]和HADDR[1]一起来判断)
最后,地址区分出来了,接收数据也就好说了,因为在CPU那边,它对人们把HADDR[0]不接到FSMC上是不知情的,所以,它还是照旧把地址逐次增一地去访问,也还是发出一个地址读回一个字节,但是它不知道的是,自己每发两个地址都会停留在外部存储器的同一个地址上,所以最终,同一个地址上的两个字节都会被CPU读走。。。
9、在战舰上的引脚定义:
LCD_CS:FSMC_NE4 PG12
LCD_WR:FSMC_NWE PD5
LCD_RD:FSMC_NOE PD4
DB[15:0]:FSMC_D[15:0]
LCD_RST:RESET
LCD_RS:FSMC_A10 PG0
BL_CTR:LCD_BL PB0
在阿波罗上的引脚定义:
LCD_CS:FMC_NE1 PD7
LCD_WR:FSMC_NWE PD5
LCD_RD:FSMC_NOE PD4
DB[15:0]:FSMC_D[15:0]
LCD_RST:RESET
LCD_RS:FMC_A18 PD13
BL_CTR:LCD_BL PB5
10、当 APB1的时钟分频数为 1 的时候,TIM2~7 以及 TIM12~14 的时钟为 APB1 的时钟,而如果 APB1 的时钟分频数不为 1,那么 TIM2~7 以及 TIM12~14 的时钟频率将为 APB1 时钟的两倍;
11、STM32 的通用 TIMx (TIM2~TIM5 和 TIM9~TIM14)定时器,高级定时器(TIM1和TIM8), 低功耗定时器(LPTIM1)
12、主机和从机模式的区别就在于:
主模式就是SPI主机,简单说就是提供SCK的那方.
而从模式,就是被动接受SCK的那方.
13、F7 FLASH
容量高达 1 MB;
256 位宽数据读取;
字节、半字、字和双字数据写入;
扇区擦除与全部擦除;
14、USART_ClearFlag 清除完成标志位 USART_ClearITPendingBit清除中断标志位
15、不要把 uart_init(115200);去掉,因为在 TPAD_Init 函数里面,我们有用到 printf,如果你去掉了 uart_init,就会导致 printf 无法执行,从而死机
16、HSE 是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为 4MHz~26MHz。阿波罗 STM32F7 开发板接的是 25MHz 外部晶振。(外部晶振比内部晶振准确)
17、keil中有些语句不能打断点: 将Optimization级别选择为default或者Level0/Level1级别,然后重新编译工程;
18、共享资源异步访问时需要加信号量或者其他可以防止同时访问的情况;

STM32F767芯片在使用中的注意点(一)相关推荐

  1. 新手学习FPGA----如何将软硬件程序固化进串行Flash芯片EPCS

    如何将软硬件程序固化进串行Flash芯片EPCS 在FPGA芯片的使用中,软硬件程序可通过JTAG口下载进FPGA芯片中,程序可立即执行,并且在掉电后程序丢失.为了避免这种情况的出现,可使用串行FLa ...

  2. STM32F767 Timer定时器与Usart串口综合实训

    基于B站小蜜蜂笔记!本文利用STM32F767开发板实现该实训! 题目要求: 利用STM32应用开发,完成以下功能. 1.开机后,LED0和LED1依次点亮,然后熄灭,进行灯光检测. 2.系统通过串口 ...

  3. STM32F7 使用 FAL 配置片上FLASH

    使用STM32F767芯片 加载RTT 3.15完整版,采用ENV工具,用KEIL加载工程,使用FAL配置片上FLASH,采用ARMV6编译器 优化等级-0 工程BSP目录下运行env 输入menuc ...

  4. GPIO的基本概念——基于STM32F767IGT6

    GPIO的基本概念 我们的STM32F767芯片一共有176根引脚,可以通过这些引脚与外设及外部电路和芯片之间执行交互: 这些引脚中间有36根专门用作电源引脚.复位引脚.启动模式引脚.晶振引脚.调试下 ...

  5. STM32之RTC时钟,闹钟,日历

    RTC时钟的一些功能介绍 RTC时钟即实时时钟,它提供了用于管理所有低功耗模式的自动唤醒单元,还提供了具有可编程闹钟中断功能的日历时钟/日历. 并且可以自动将月份的天数补偿为 28.29(闰年).30 ...

  6. 微型计算机系统课程设计,微机课程设计模板.doc

    微机课程设计模板.doc 1课程设计课程名称_微机原理及应用_______题目名称_微机原理及应用课程设计_学生学院_自动化学院______专业班级电气工程及其自动化2班__学号__310700105 ...

  7. 硕士选题历程:集群+电子样机+机载视觉+生物信息+智慧控制

    此次整理笔记,将硕士课题的调研历程整理如下(导师的思路天马行空,我本人又是科研小白,因此整个思路比较混乱): 调研主题:倾转旋翼.风洞.嵌入式.神经网络.电子样机.机载视觉(降落).智能控制 项目一. ...

  8. rtthread studio与正点原子apollo(3)--硬件定时器HTIMER

    rtthread studio与正点原子apollo[3]--硬件定时器HTIMER 前言 一.软件定时器和硬件定时器? 二.HTIMER使用详解 1.RT-Thread studio配置 2.功能代 ...

  9. 双11哪些手机值得买?不妨看看这篇TOP10推荐排行再入手

    突然发现今年的双十一越来越早了,大家从24号就开始各种定金预售,鲁sir也想参与其中买点什么.但经过我的一番研究,发现今年的双十一好像除了手机真没什么太值得买的.今年高通和联发科把旗舰新品发布会提前了 ...

最新文章

  1. 倒计时或按任意键返回首页_客服魔方更新:首页界面大改版,催拍催付操作更方便...
  2. 联想小新电脑dns服务器未响应,Lenovo Quick Fix 联想智能解决工具
  3. linux服务 运维案例,linux运维实战练习案例-2015年12月20日-12月31日
  4. 工作141:map形成数组
  5. python 二维强度图_荐 python数据分析matplotlib库使用之二维图形绘制
  6. check-lxdialog.sh: line 3: $'\r': command not found
  7. okhttp请求php接口,安卓:okhttp请求,获取返回数据
  8. FreeBSD 查看USB
  9. uva 12253 - Simple Encryption(dfs)
  10. 在Orderby子句中使用CASE 语句
  11. 软考信息系统项目管理师真题及答案之案例分析
  12. 马尔科夫区制转换matlab,马尔科夫区制转移混频向量自回归(MS-MF-VAR)模型及其Gauss实现...
  13. 【经典详解】<T> T 和 T的用法和区别,public <T> List<T> f(T a){}的详解
  14. 条形码控件TBarCode SDK系列教程一(TBarCode OCX篇)
  15. 小学三年级计算机画图工具作品,小学三年级美术下册《电脑绘画—模板帮我们作画》教案...
  16. 面试必问 | HBase最新面试总结
  17. 命令可以在linux的安全系统中,什么命令可以在linux的安全系统中完成文件向磁带备份的工作...
  18. 优化算法—人工蜂群算法(ABC)
  19. python大数相乘
  20. PJSIP语音回声优化

热门文章

  1. java面试一些问题汇总
  2. 【毕业设计】深度学习+python+opencv实现动物识别 - 图像识别
  3. 【深度干货】数据中心机柜综合布线
  4. vue 判断两对象是否一致_判断两个对象的值是否相等
  5. 华为手撕代码c语言题目,想去面试?这10道最高频的手撕代码题都会了吗?
  6. Unity中实现隐藏iPhoneX底部横条
  7. 生日快乐python编程代码_如何用C语言编写一个很炫的生日快乐的程序?
  8. 基于Singer映射和参数位置自适应更新机制的改进被囊群算法
  9. 2020-11-02 很多人比起穷,更受不了慢慢变富
  10. Carson带你学Android:图文详解RxJava背压策略