stm32f746ng 例程学习
qq_34190043
这个作者很懒,什么都没留下…
展开
-
如何入门stm32f746ng?
一、提纲1、板卡外设2、芯片相关手册学习3、应用场景4、例程学习5、自己反复复现例程二、具体内容1、板卡外设2、芯片相关手册学习A、数据手册主要包括:基本结构寄存器设置B、hal库学习3、应用场景TM32F746G-DISCO 由于其在音视频处理,多传感器支持,图形化,安全性和高速通信等方面的优良特性,使它的应用范围非常广泛,诸如音视频录像机,家庭防盗报...原创 2019-07-02 21:44:40 · 1804 阅读 · 2 评论 -
LED小灯点亮复习
#include "MyIncludes.h"int main(void){ System_Init(); LED_Init(); while(1) { LED_Flash(); }}首先应该知道.h文件类似粘连剂,也可以说是驱动文件,一个工具箱。比如MyIncludes.h具体如何实现还是看.c文件。首先看main.c文件的main函数部分。系统初始化...原创 2019-07-27 17:50:06 · 231 阅读 · 0 评论 -
系统模型
Cortex-M0体系结构包括:系统模型、存储器映射、异常中断。这篇文章主要讲解Cortex-M0的系统模型。操作模式和状态如上图所示,Cortex-M0包括两种操作模式和两种状态Thumb状态(Thumb state)处理模式线程模式调试状态 处理器启动后处于Thumb状态,在这种状态下,处理器可以处于线程模式和处理模式,线程模式时执行普通代码,处理模式时执行异常处理。线程模式...原创 2019-07-07 11:03:38 · 1456 阅读 · 0 评论 -
外部中断和SysTick实验和uart串口实验
一 外部中断1.main.c#include "MyIncludes.h"void GPIO_EXTI_ISR(uint16_t GPIO_Pin){ if(GPIO_Pin == GPIO_PIN_11) { HAL_GPIO_TogglePin(GPIOI,GPIO_PIN_1); }}int main(void){ System_Init(); SysTick...原创 2019-07-05 22:02:29 · 734 阅读 · 0 评论 -
汇编语言学习
1.数据在内存中的存储。2.如何将内存中的值传到寄存器中。要传输值,首先要知道其地址。在计算机中,表示地址是通过段地址和偏移地址组成。mov bx 0x1000mov ds bxmov ax,[0]3.如何将寄存器中的值传到内存中。mov bx 0x1000mov ds bxmov [0],ax4.栈的实现过程。栈顶的位置尤为重要。入栈需要,出栈也需要。入栈时,数据的生长...原创 2019-07-05 16:06:25 · 98 阅读 · 0 评论 -
2.从点亮小灯开始学stm32(2)
学了一段stm32,始终不知道系统运行的具体原理。现在我将通过仿真的方式,一步一步窥探小灯是如何被点亮的。1、main.c#include "MyIncludes.h"int main(void){ System_Init(); LED_Init(); while(1) { LED_Flash(); }}2、可以发现,首先系统运行到flash中的地址为...原创 2019-07-05 14:51:26 · 286 阅读 · 0 评论 -
4、按键输入实验
1、文件树2、main.c代码#include "MyIncludes.h"int main(void){ System_Init(); SysTick_Init(NULL); LED_Init(); Key_Init(); while(1) { Key_Read(); if(Key_Info.Num_Last != Key_Info.Num) ...原创 2019-07-04 22:24:29 · 402 阅读 · 0 评论 -
为什么中断子程序中不能使用延时和过长的程序?
A回答:通常在中断子程序中是不调用延时子程序的,这样会增加中断处理时间,如果有其它低级中断了,就会延误响应中断了。所以,中断子程序中不要写调用延时子程序,中断子程序也不要写得过长,处理过多的任务,要尽快处理后及时返回,如果中断一次有很多任务需要执行完全,可以在中断子程序中设置一个标志位,在主程序中查这个标志位,当标志为1时,就在主程序中完成这些任务,这样就不会影响其它中断源的中断,也不会使中断...原创 2019-07-04 21:25:18 · 11174 阅读 · 0 评论 -
3、SysTick学习
1、文件树2、main.c代码#include "MyIncludes.h"u16 sys_cnt = 0;void #include "MyIncludes.h"u16 sys_cnt = 0;void systick_isr(void){ if(sys_cnt < 1000) sys_cnt++; else { sys_cnt = 0; HAL_GPIO_...原创 2019-07-04 15:29:08 · 447 阅读 · 0 评论 -
2.从点亮小灯开始学stm32
这个文件管理树,看着挺复杂。其中,User里面有mian.c和头文件。BSP是驱动程序,在本例程中就是驱动小灯的程序。如何驱动小灯?其实就是对gpio口进行设置,然后通过给对应的数据寄存器赋值,使得灯亮灭。还需要延时模块,可以实现亮灭交替。前面一篇文章说过,设置寄存器很简单,就是给ram中某个地址的变量赋值。但是如果寄存器数据多,而且地址是32位的情况下,记住相对于的寄存器地址就会很麻烦,...原创 2019-07-04 14:37:14 · 236 阅读 · 0 评论 -
stm32 hal库结构的文件关系
1.库文件层次关系 https://www.cnblogs.com/firege/p/9211930.htmlA.最底层stm32f746xx.h 外设的寄存器组结构B.时钟源管理,始终初始化/******************************************************************************** F...原创 2019-07-09 20:34:56 · 864 阅读 · 0 评论 -
1、从点亮小灯开始学stm32
1.首先把文件中需要的头文件路径加好2.整理文件夹3.接下来就是led.c和led.h以及main.c编程首先应该对led灯亮灭的原理理解,懂得其是通过gpio口的高低电平来控制的。其次就是在原理图上找到该引脚。知道引脚名字后,就可以针对该引脚进行配置。为什么需要配置?也许你会问在51中不是直接对该引脚赋值0,和1从而使得引脚输出高低电平?这里就要讲一下了。通用gpio端口结构图:...原创 2019-07-03 19:40:08 · 754 阅读 · 0 评论 -
7、I2C给AT24LC02(EEPROM)写入数据
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-06-27 20:05:29 · 2357 阅读 · 0 评论 -
11.flash数据存储实验
1.实验目的把数据写入flash中,通过读出的数据与写入的数据进行比对,来判断是否写入成功!重要实现代码 res = StmFlash_Erase(FLASH_USER_START_ADDR,FLASH_USER_END_ADDR); res = StmFlash_Program(FLASH_USER_START_ADDR,wr_buff,250); StmFalsh_Read(...原创 2019-07-08 22:48:38 · 423 阅读 · 0 评论 -
9.lcd显示实验
显示字符LCD_ShowStr(50,60,16,"STM32F746NGH6 ^_^",1,LCD_COLOR_WHITE,NULL);/******************************************************************************** Function Name : LCD_ShowStr* Description ...原创 2019-07-08 22:06:48 · 1051 阅读 · 1 评论 -
stm32f103 pwm学习
void PWM_Init(u32 Freq, u32 Duty_Cycle){ //TIM5 counter clock uwPeriodValue = (uint32_t) ((SystemCoreClock / 2 / Freq) - 1); PWMHandle.Instance = TIM5; //TIM5_CH4²úÉúPWM PWMHandle.Init.Pres...原创 2019-08-05 17:33:46 · 182 阅读 · 0 评论