随笔分类 -  STM32

使用HAL库
摘要:Code 代表执行的代码,程序中所有的函数都位于此处。 RO-data 代表只读数据,程序中所定义的全局常量数据和字符串都位于此处。 RW-data 代表已初始化的读写数据,程序中定义并且初始化的全局变量和静态变量位于此处。 ZI-data 代表未初始化的读写数据,程序中定义了但没有初始化的全局变量 阅读全文
posted @ 2018-09-13 17:02 狗尾巴草word 阅读(458) 评论(0) 推荐(0)
摘要:一、介绍: STM32看门狗分为独立看门狗和窗口看门狗两种,其两者使用调条件如下所示, IWDG和WWDG两者特点如下图所示: 独立看门狗的手册资料: 窗口看门狗的手册资料: 应当注意:在窗口看门狗中,当递减计数器在窗口外被重新装载,(若看门狗被启动)则产生复位 【注】图中的WDGTB为3表示2^3 阅读全文
posted @ 2018-09-13 17:01 狗尾巴草word 阅读(1060) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-09-13 17:00 狗尾巴草word 阅读(274) 评论(0) 推荐(0)
摘要:好久之前的做的笔记,这里贴出。 char String[100];//直接用数组代替指针即可解决 下面代代码下载至单片机中,发现会出现单片机死机问题 然而下面这段代码却能正常执行: 最后改char *String; 为指定字节大小的变量,发现第一处的不能执行的代码可以执行了 总结用sprintf转换 阅读全文
posted @ 2018-09-13 17:00 狗尾巴草word 阅读(579) 评论(0) 推荐(0)
摘要:首先刷入安信可的AiCloud 2.0 SDK文件,AiCloud 2.0具体信息参见AiCloud 1.0 和AiCloud 2.0对比 APP见如下二维码下载。 1、安信可AiCloud 2.0 AT 固件 ai-thinker_esp8266_dout_aicloud_v0.0.0.6_201 阅读全文
posted @ 2018-09-13 16:59 狗尾巴草word 阅读(2440) 评论(0) 推荐(0)
摘要:一、STM32 下不了程序 提示: 用isp把芯片全部擦除再试试,如果可以的话应该是你的程序中禁止调试接口了 不是程序禁止了,是MCUISP这个软件搞的 解决办法:应该还有一根3.3V的线吧 你把3.3V的线连上试试,(两个原因你控制板上GND或VCC有一根没连上,第二个,你的jlink电源线烧了。 阅读全文
posted @ 2018-09-13 16:58 狗尾巴草word 阅读(893) 评论(0) 推荐(0)
摘要:NVIC的全称是Nested vectoredinterrupt controller,即嵌套向量中断控制器。 对于M3和M4内核的MCU,每个中断的优先级都是用寄存器中的8位来设置的。8位的话就可以设置2^8 =256级中断,实际中用不了这么多,所以芯片厂商根据自己生产的芯片做出了调整。比如ST的 阅读全文
posted @ 2018-09-10 23:29 狗尾巴草word 阅读(1276) 评论(0) 推荐(0)
摘要:一、什么是AMBA总线 AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能 阅读全文
posted @ 2018-09-10 23:29 狗尾巴草word 阅读(800) 评论(0) 推荐(0)
摘要:Ⅰ、写在前面 相信很多人都知道STM32CubeMX这个工具,也是近年来开发STM32比较流行的一个工具。这个工具从两年前第一版到现在已经有多个版本了,功能也从简单越来越强大了。 STM32CubeMX是一个配置STM32代码的工具,它把很多东西封装的比较好,硬件抽象层、中间层、示例代码等。 现在S 阅读全文
posted @ 2018-09-10 23:28 狗尾巴草word 阅读(619) 评论(0) 推荐(0)
摘要:一、硬件 如下图所示,485芯片链接到单片机的USART2上,但是默认的USART2并不是在PD5和PD6上,这里是需要重映射的。另外PG4作为485收发的控制(在485协议中,RE、DE同时为高电平那么芯片使能发送,如果同时为低电平那么芯片使能接收) 二、软件设计 1.软件功能 默认485芯片是接 阅读全文
posted @ 2018-09-10 23:27 狗尾巴草word 阅读(8446) 评论(0) 推荐(1)
摘要:问题: (1)下面界面中找不到设备 (2)下载程序的时候提示“ no cortex m sw divice ” 然后是“target dll has been cancelled” 如果生成工程的时候使用的是CubeMX,且第一次下载能行,再下载就没救了,怎么也下载不进去,那么解决办法如下: 在Cu 阅读全文
posted @ 2018-09-10 23:27 狗尾巴草word 阅读(3708) 评论(0) 推荐(0)
摘要:1.判断地址、校验 2.读取本机数据并校验打包 3.发送数据包 4.本机数据长度比要读取的长度短怎么办 4.校验错误怎么办 阅读全文
posted @ 2018-09-10 23:26 狗尾巴草word 阅读(4792) 评论(1) 推荐(0)
摘要:一、查询模式 1. 二、中断模式 1.中断接收。 1.1先看中断接收的流程(以 USART2 为例) 在启动文件中找到中断向量 USART2_IRQHandler 找到USART2_IRQHandler的函数定义 可以看到这里又转到另一个函数里去了,再找下去: 该函数的源码: 也就是说,当串口中断触 阅读全文
posted @ 2018-09-10 23:25 狗尾巴草word 阅读(38689) 评论(6) 推荐(7)
摘要:功能需求: (1)对接收的字符串原样返回(每10个字符一次)。 (2)发送一个字符串完成后改变LED的状态。 1.创建工程 使用的是F407Discovery,4个LED对应PD12-PD14。 (1)使用外部高速时钟 (2)推挽输出4个LED输出端口 (3)使用usart2 (4)外部8M,使用H 阅读全文
posted @ 2018-09-10 23:25 狗尾巴草word 阅读(7530) 评论(1) 推荐(2)
摘要:一、Cube配置 需求:使用PD10作为外部中断(下降沿触发)控制LED(PD12-PD14) 1.选型 STM32-F4-Discovery使用的是F407VGT6. 2.使能时钟 3.设置GPIO PD12-PD15对应4个LED,设置为输出 使用PD10作为外部中断,于是PD10设置为GPIO 阅读全文
posted @ 2018-09-10 23:24 狗尾巴草word 阅读(24463) 评论(0) 推荐(3)
摘要:1.中断触发过程 对主程序压栈——把中断服务函数的地址写入到程序计数器(PC)——执行中断服务函数 2.中断向量表 中断服务函数的地址在STM32的手册上的中断向量表中(如下是一部分): 如上表所示,EXTI0中断服务函数的地址是0x00000058。意思就是如果触发了外部中断那么就从0x00000 阅读全文
posted @ 2018-09-10 23:23 狗尾巴草word 阅读(2700) 评论(0) 推荐(0)
摘要:一 初始化GPIO 使用HAL库的优点在于不用手动添加初始化的代码了,CubeMX会根据软件设置自动生成。 自动生成的HAL库GPIO初始化代码: 顺序:(1)定义结构体变量。(2)使能时钟。(3)配置初始化电平。(4)通过结构体变量初始化GPIO。 1.首先定义一个结构体变量GPIO_InitSt 阅读全文
posted @ 2018-09-10 23:21 狗尾巴草word 阅读(6058) 评论(0) 推荐(2)