![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Cortex-M4
fyws0123
这个作者很懒,什么都没留下…
展开
-
【记录】STM32串口测试
测试环境正点原子战舰STM32F767STM32串口中断收发为了验证硬件的正确性,最简单的方法是接收串口工具的数据,然后将接收到的数据发送STM32串口-接收定长数据uint8_t g_u8SndBuf[UART_LEN] = "USART1 Send test\n\r";uint8_t g_u8RcvBuf[UART_LEN] = {0};void MX_USART1_UART_Init(void){ huart1.Instance = USART1; huart1原创 2020-06-25 10:03:29 · 1869 阅读 · 1 评论 -
【译】volatile C语言关键字,如何使用?
原文概要许多程序员无法正确的理解C语言关键字volatile。这并不奇怪,大多数C原因书籍不过一两句一带而过。本文将告诉你如何正确使用它。在C/C++嵌入式代码中,你是否经历过下面的情况:代码执行正常–直到你打开了编译器优化代码执行正常–直到打开了中断古怪的硬件驱动RTOS的任务独立运行正常–直到生成了其他任务如果你的回答是“yes”,很有可能你没有使用C怨言关键字volatile。你并不翻译 2016-07-05 20:37:06 · 873 阅读 · 0 评论 -
【记录】IIC
概要IIC(IIC,inter-Integrated circuit),两线式串行总线,用于MCU和外设间的通信。 IIC只需两根线:数据线SDA和时钟线SCL。以半双工方式实现MCU和外设之间数据传输,速度可达400kbps。多主机I2C总线结构注意SDA和SCL两根总线需要上拉,使总线处于空闲状态。IIC协议空闲状态协议规定,SDA和SCL同时为高电平时,总线处于空闲状态。上拉电阻保证电平处于原创 2016-07-17 12:57:31 · 6764 阅读 · 3 评论 -
【解决】UART问题
UART和USART区别UART(Universal asynchronous receiver transmitter):通用异步收发器 USART(Universal synchronous asynchronous receiver transmitter):通用同步异步发生器在USART模式下,需要SCLK引脚,用于发送器时钟的输出,以便按照SPI主模式进行同步发送(起始位和结束位上无时钟原创 2016-07-05 20:43:12 · 8688 阅读 · 0 评论 -
【记录】UART
处理器与外部设备通信的两种方式并行通信传输原理:数据各个位同时传输优点:速度快缺点:占用引脚资源多串行通信传输原理:数据按位顺序传输优点:占用引脚资源少缺点:速度相对较慢串行通信按传送方向,可分为单工数据传输只支持数据在一个方向上传输半双工允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信全双工允许数据同时在两个方向上传输,因原创 2016-07-04 23:15:13 · 660 阅读 · 0 评论 -
【记录】寄存器地址映射
51单片机寄存器地址映射使用sfr关键字映射寄存器地址sfr P0 = 0x80; //P0映射到地址0x80P0 = 0x00; //向寄存器地址0x80赋值0x00STM32寄存器地址映射当我们想ODR寄存器赋值0时,MCU是如何知道ODR寄存器的地址呢?GPIOA->ODR = 0x00000000;在STM32中, 寄存器地址 = (外设基地址+偏移量1) + (总线基地址原创 2016-07-04 22:55:35 · 926 阅读 · 0 评论 -
【记录】key
实验目的验证IO的输入模式。要点从硬件原理图上卡,KEY_UP高电平有效,且没有上拉电阻,所有需要设置PA0内部上拉,同理,KEY0,KEY1,KEY2低电平有效,没有外接下拉电阻,所以需要设置PE2,PE3,PE4内部下拉电阻。由于按键的特殊性,软件中增加“去抖动”处理实现驱动程序#ifndef __KEY_H__#define __KEY_H__#include "sys.h"#defi原创 2016-07-03 21:23:05 · 1015 阅读 · 1 评论 -
【记录】LED
概要LED两端有压差时,LED可以发光。LED一端接V3.3,另一端接PIN脚。即,PIN脚高电平(1)时,LEF亮,PIN脚低电平(0)时,LED灭。PIN脚工作模式为输出。实现步骤使能IO时钟设置IO工作方式设置LED初始状态接口#ifndef __LED_H__#define __LED_H__#include "sys.h"#define LED0 PFout(9)#define原创 2016-07-03 11:09:16 · 549 阅读 · 0 评论 -
【记录】STM32 GPIO模式
原文 STM32中GPIO的8种工作模式 STM32输入输出模式理解最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多: (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD转载 2016-07-03 10:03:46 · 338 阅读 · 0 评论 -
【记录】STM32 printf函数实现方法
原文:STM32 Printf函数实现方法原创 2016-07-02 21:14:53 · 5897 阅读 · 0 评论 -
【整理】J-Link 固件恢复
JLINK使用过程中,会发生程序异常,典型的是USB无法识别。我手上的JLINK在使用第三天的时候就出现了这样的问题。我当时曾经重新安装过不同版本的JLINK驱动,可能就是这样造成的吧。原因可能是固件固件本身的Bug,也可能是JLINK驱动的问题。一旦你的JLINK无法工作了,可以对JLINK进行固件恢复的,即重新将固件程序烧写到JLINK的Flash中。JLINK就是一个小型的嵌入式系统,从结构上原创 2016-07-02 21:26:34 · 1538 阅读 · 0 评论 -
【记录】实现delay
实现方法处理器有一个24位的系统定时器,SysTick。该定时器向下计数。计数到0后,重新从STK_LOAD寄存器中重载计数值,继续向下计数。使用SysTick的优点是,不用占用中断和定时器资源。相关寄存器STK_CTRL: 0-bit,计数器使能位; 1-bit,选择时钟源 16-bit,计数到0后,该标志位被置1STK_LOAD 计数值重载寄存器,当计数值计数到0后,将从该寄存器中原创 2016-07-02 11:06:24 · 455 阅读 · 0 评论 -
【记录】MDK新建工程
声明:参考《STM32F4开发指南–寄存器版》操作并记录过程。详细请参考该文档。安装MDK5后,就可以搭建自己的工作环境了。选择芯片型号,购买的开发板芯片型号是STM32F407ZGT6,在弹出的对话框中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F407ZG。之后弹出的Manager Run-Time Environment中点击C原创 2016-06-24 23:02:49 · 344 阅读 · 0 评论