- 博客(20)
- 收藏
- 关注
原创 gcc代码优化导致nrf52点灯程序逻辑出错
在nrf52840芯片上编写的一个LED灯闪烁程序,运行后LED灯不闪烁,反复确认代码逻辑没啥问题,通过调试是GCC优化代码导致的问题。
2024-10-03 21:31:26
351
原创 msys2+gdb-multiarch+jlinkGDBServer的nrf52调试环境搭建
前言刚拿到一块nrf52840的板子,为了方便以后的开发,先搭建一个调试环境,为方便以后回忆记录一下过程。将jlink工具路径加入msys2的PATH,在MSYS2 UCRT64中使用下面命令。这个~/.bashrc是打开MSYS2 UCRT64时要首先运行的命令。
2024-10-03 14:27:22
614
原创 msys2软件包手动安装
在下面网站中下载相应软件包:(msys2好像分mingw64、ucrt64、clang64,不是很懂反正我用的ucrt64)下载后缀为.zst的,我下载的mingw-w64-ucrt-x86_64-arm-none-eabi-gdb-9.2-8-any.pkg.tar.zst,
2024-10-03 13:24:10
931
原创 GNU make的官方生成依赖例子理解
不是很理解,通过查找资料终于理解啦,写点东西记录一下。sed网上有很多资料,理解下面的命令不难。对于sed ‘s,($
2023-04-26 18:58:43
446
转载 函数正交与向量正交
转载自https://blog.youkuaiyun.com/eloudy/article/details/56489400 函数的正交是向量正交概念的推广。一个函数f(x)可以视之为无穷维向量。在n维空间中两个向量的正交是用内积这个概念来定义的:设X=(x1,x2,...,xn),Y=(y1,y2,...,yn),则X与Y正交定义为其内积 X*Y=x1*y1+x2*y2+...+xn*...
2018-08-10 15:06:20
1697
转载 stm32之PWM DAC傅里叶级数推导
转载自http://blog.sina.cn/dpool/blog/s/blog_57ad1bd20100txgs.html?vt=4傅里叶级数的数学推导 首先,隆重推出傅里叶级数的公式,不过这个东西属于“文物”级别的,诞生于19世纪初,因为傅里叶他老人家生于1768年,死于1830年。 但傅里叶级数在数论、组合数学、信号处理、概率论、统计学、密码学、声学、光学等领域都有着广泛的应用,...
2018-08-09 20:11:15
2454
转载 stm32之ADC
转载自https://www.cnblogs.com/chris-cp/p/3947451.htmlstm32之ADC 将模拟量转换为数字量的过程称为模式(A/D)转换,完成这一转换的期间成为模数转换器(简称ADC);将数字量转换为模拟量的过程为数模(D/A)转换,完成这一转换的器件称为数模转换器(简称DAC). 模拟信号的采集与处理: 数据采集系统由模拟信号采集、A/D转...
2018-08-09 15:11:38
349
转载 stm32 adc
一。什么是本文引用地址: http://power.21ic.com//poc/technical/201711/58340.html 二。ADC的特点 ADC的位数决定了ADC的精度,有8位的,12位的,16位的等。还有一个很重要的参数就是转换时间。STM32f103RBT6有2个ADC控制器。128KFlash,20KRAM每一个ADC控制器...
2018-08-09 13:06:44
454
原创 usmart中_m_usmart_dev的理解
首先声明了一个如下类型的结构体类型_m_usmart_devstruct _m_usmart_dev{ struct _m_usmart_nametab *funs; //函数名指针 void (*init)(u8); //初始化 u8 (*cmd_rec)(u8*str); //识...
2018-08-07 12:24:55
1575
转载 WWDG初始化时库函数调用顺序
转载自https://blog.youkuaiyun.com/lbsgrowup/article/details/47428627WWDG初始化时库函数调用顺序(1)对于下述的WWDG初始化函数,烧录后,运行正常。但是,将WWDG使能并装载初始值语句WWDG_Enable(WWDG_CNT)放于清除提前唤醒中断标志位语句WWDG_ClearFlag()和开启窗口看门狗中断语句WWDG_EnableIT...
2018-08-04 16:37:46
588
转载 STM32F103ZE单片机在WWDG窗口看门狗的EWI中断中喂狗导致系统复位的原因及解决办法(中断函数重入问题)
转载自https://blog.youkuaiyun.com/ZLK1214/article/details/78308058程序开启了WWDG的Early wakeup(EWI)中断,在中断中喂狗,但系统不停地复位。HCLK=72MHz, PCLK1=4.5MHz, PCLK2=72MHz程序如下: #include <stdio.h> #include <...
2018-08-04 10:14:03
1010
1
原创 GPIO输入输出模式
浮空输入:引脚处电压由外接电路决定,电平可能是高,也可能是低,还可能非高非低,多用于ADC的输入上拉/下拉输入:引脚未接外部电路时引脚处电压由芯片提供上拉为高电平下拉为低电平推挽输出:可设置引脚为高电平或低电平开漏输出:软件置0输出低电平,软件置1引脚电平由外接电路决定和浮空输入类似...
2018-07-29 15:55:32
1051
原创 stm32 delay函数的理解
1,首先看HCLK是多少频率,2,Systick用的是外部时钟源(STCLK),还是内核时钟源(FCLK);外部时钟源是 HCLK(AHB总线时钟)的1/8;内核时钟是 HCLK时钟void delay_us(u32 nus){ u32 ticks; u32 told,tnow,tcnt=0; u32 reload=SysTick-...
2018-07-25 16:11:31
3976
转载 时钟周期/指令周期/机器周期/总线周期+系统时钟,CPU时钟
转载自https://blog.youkuaiyun.com/yuandm819/article/details/51213734时钟周期时钟周期也称为震荡周期, 定义为时钟脉冲的倒数, 是计算机中最基本, 最小的时间单位.在一个时钟周期内, CPU只完成最基本的动作. 对同一种机型而言, 时钟频率越高, 计算机工作速度越快.机器周期在计算机中, 为了便于管理, 通常把一条指令执行划分为若干个阶段...
2018-07-25 14:18:54
3252
转载 stm32位带操作理解
转载自https://www.cnblogs.com/szhb-5251/p/6662417.html正在准备做毕业设计,配置LED_Config()的时候,又看到了位带操作的宏定义,我又嘀咕了,什么是位带操作,一年前在使用位带操作的时候,就查阅过好多资料,Core-M3也看过,但是对于博主这种“低能儿”来说,你不把它说的白一点,就是感觉理解的不够透彻,于是今天又一次,查阅了各种手册,也算是基...
2018-07-23 18:20:20
2065
2
转载 GPIO_Init() 引脚初始化理解
转载自https://blog.youkuaiyun.com/wqx521/article/details/50925659 /* GPIO_InitTypeDef结构体 */ typedef enum { GPIO_Speed_10MHz = 1, //枚举常量,值为 1,代表输出速率最高为 10MHz GPIO_Speed_2MHz, //对不赋值的枚举变...
2018-07-22 17:19:50
16055
原创 stm32f10x.h中寄存器的声明理解
stm32f10x库文件中的端口时钟使能方程如下:void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState){ /* Check the parameters */ assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph)); assert_...
2018-07-22 09:42:44
1973
转载 #define __IO volatile
转载自https://blog.youkuaiyun.com/qq_35553587/article/details/79507277STM32例子代码中会有像这样的代码 static __IO uint32_t TimingDelay; 这里边的__IO修饰符不好理解,单从字面可以看出是为IO相关,查其标准库可以得知这个__IO原来是在Core_cm3.h中被重定义,其实就是volatile,句子如下...
2018-07-21 16:47:39
1175
转载 详解stm32中的assert_param()函数
转载自http://blog.sina.com.cn/s/blog_dc9571b90102vhuw.html大家在用stm32库函数的时候几乎都会发现assert_param()这个函数,这个函数是判断参数有没有错误,具体是什么错误呢,我会在后面贴图的。 assert_param()这个函数在stm32f10x_conf.h中定义: #ifdef USE_FULL_ASSE...
2018-07-21 16:13:31
2650
1
转载 #define用法详解
转载自https://www.cnblogs.com/shmilxu/p/4837373.html#define用法详解1.#define 的作用 在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令...
2018-07-21 15:56:46
352
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人