![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32
EmbeddedOsprey
主攻方向:STM32软件开发,主要开发平台KEIL
展开
-
STM32F4 RTC 读取错误
要先读时间RTC_GetTime(),然后再读日期RTC_GetDate()原创 2020-06-09 16:58:01 · 637 阅读 · 0 评论 -
USB
原创 2020-06-04 17:29:54 · 255 阅读 · 0 评论 -
固件升级设置向量表地址
extern int Image$$ER_IROM1$$Base; NVIC_SetVectorTable(NVIC_VectTab_FLASH, (uint32_t)&Image$$ER_IROM1$$Base - FLASH_BASE);原创 2020-05-19 14:04:17 · 331 阅读 · 0 评论 -
KEIL 下如何进行断点设置
汇编DEMCR EQU 0xE000EDFC LDR r0, =DEMCR LDR r0,[r0,#0x00] AND r0,r0,#0x01000000 CBZ r0,no_debug BKPT 0no_debug ; 地址标签C语言 if(*((uint32_t*)0xE000EDFC) & 0x...原创 2020-04-09 11:30:35 · 1881 阅读 · 0 评论 -
野火CMSIS-DAP对应引脚与固件更新修复
野火下载口对应TCK PA3RST PA2TMS PA4自下载PA14 TCKPA13 TMS摆放位置 USB | CPU | 下载口VCC、TMS、GND、TCK原创 2019-06-13 20:03:31 · 6039 阅读 · 0 评论 -
L9937E: MDK-Pro middleware is not allowed with this license
重新注册原创 2019-06-13 18:44:51 · 2740 阅读 · 0 评论 -
STM32读保护
产品读保护1、禁用调试口2、开启读保护void Set_Protect(void) //启动保护{ if(FLASH_GetReadOutProtectionStatus() != SET) { FLASH_Unlock(); //解锁 FLASH_ReadOutProtection(ENABLE); FLASH_Loc...原创 2019-06-13 14:51:12 · 1447 阅读 · 0 评论 -
写1翻转的一点思考
有些寄存器的有些 bit 位有写 1 翻转的特性,该怎么处理?常用的对某些 bit 进行 & 或者 | 操作不太合适,比如7 6 5 4 3 2 1 01 0 0 0 0 1 1 1假设后面的 3 bit 是翻转 bit,现在要对 4~5 设置为 10b为了不影响其它 bit,一般会采用如下方式:value &= (0xFF | ...原创 2019-05-17 09:56:03 · 238 阅读 · 1 评论 -
STM32 之 DMA
stm32f2 技术培训_直接存储器访问_dma http://www.doc88.com/p-7952436689372.htmlAN4031 应用笔记:使用 STM32F2 和 STM32F4 DMA 控制器AN2548 应用笔记:使用 STM32F101xx 和 STM32F103xx DMA 控制器STM32中文参考手册看完这些就差不多了。首先大概介绍一下功能吧,看笔记对于初学...原创 2019-03-08 18:57:55 · 529 阅读 · 0 评论 -
为什么说你一定要掌握 KEIL 调试方法?
在嵌入式软件开发过程中,不可避免的会出现很多的 BUG,比如串口通信异常、定时器无法输出脉冲、IO 口无法输出、无法进入中断等等问题,导致这些问题的原因可能不仅仅只是某一个方面,也可能是综合的,可能是软件设计上的问题,也可能是硬件上的,如何锁定问题就成了关键。学习 51 的时候,可能会采用 LED 灯、数码管、LCD 屏等方式进行辅助调试(关于这个【看不会 printf 怎么打印红外遥控数据?...原创 2019-03-24 14:58:28 · 912 阅读 · 0 评论 -
RTX工程源码移植(STM32F4xx)
KEIL5建立RTX工程确实很方便,但是有一个很大的问题,就是它直接使用.lib库,这样就让想对RTX进行源码分析的道友设置了障碍,因此需要将源码添加工程中。KEIL4的移植过程http://forum.armfly.com/forum.php?mod=viewthread&tid=16616&page=1&authorid=3349KEIL5移植。源码位置:X:\...原创 2019-04-13 17:25:50 · 1180 阅读 · 0 评论 -
操作系统中的中断控制
本文为随笔,更多细节可关注微信公众号:emOspreyMAX_SYSCALL_INTERRUPT_PRIORITY EQU 3 ; 屏蔽低于优先级 2 的中断,即抢占优先级设置为 0~2 将被屏蔽,3不屏蔽 OS_CPU_SR_Save MRS R0, BASEPRI ; 读取 PRIMASK 到R0,R0为返回值 MOV R1, #(MAX_...原创 2019-04-28 09:44:45 · 1039 阅读 · 0 评论 -
STM32输出指定脉冲个数
1、主从定时器2、高级定时器,RCR 寄存器和 OPM 配合使用3、利用定时器进行初始同步(开始时定时器运行,但不输出脉冲,这个阶段用于同步,直到同步之后才进行输出)更多精彩,欢迎关注微信公众号:emOsprey...原创 2019-04-28 15:32:16 · 7749 阅读 · 0 评论 -
对嵌入式操作系统时间分片的一点理解
以 uCOS II 为例:OS_TICKS_PER_SEC如果 OS_TICKS_PER_SEC 为 100,表示 1 秒中断 100 次,也就意味着,任务切换时间为 10 ms。这个很容易理解,但是怎么使用呢。我们知道嵌入式常用的时间单位是 s、ms、us,OS_TICKS_PER_SEC 怎么和这些单位联系起来呢,又怎么去更好的理解它?系统延时函数OSTimeDly (x);如...原创 2019-04-29 11:10:20 · 1588 阅读 · 0 评论 -
STM32 ADC 过采样技术
https://wenku.baidu.com/view/383a8382e53a580216fcfe2e.html通过对文章的分析,发现它的实验结果并不能得到16 bit 精度采样数据。如果要达到 16 bit 精度,那么采样数据和理论值差值小于 8 才可能。但通过分析该实验结果发现几乎没有这样的数据出现,几乎都是 >= 8 ,也就是说根本就没有提高哪怕 1 bit 的精度。但是过...原创 2019-05-09 17:34:46 · 8473 阅读 · 0 评论 -
STM32调试利器之ITM
折腾了许久,终于把 ITM 调试搞定了。首先看看效果图:是的,你没有看错,以上所有的窗口都是由MDK支持的。这也是为什么我执着于ITM调试的原因了,因为这种调试手段实在是太方便了啊。相信很多朋友在开发的过程中都会遇到不少的BUG,那么如何定位BUG就成了关键。早期的时候,很多人习惯用printf函数进行开发调试,我也不例外,一直以来我都是把ST-LINK当成一个下载工具。但是当我知道了...原创 2019-02-02 09:41:32 · 8733 阅读 · 6 评论