Image
Image

结合国际经验

+ 关注

粉丝 1     |     主题 66     |     回帖 775

《嵌入式 - 深入剖析STM32》详解STM32位带操作
2023-9-27 15:15
  • ST MCU
  • 33
  • 905
  总的来说,位带的主要优点是数据的一个单独位可以通过一条指令来读或者写,而不需要操作一些利的寄存器。例 ...  
  可以看出位带操作的步骤更少,相对普通操作更简洁。 而且位带操作属于原子操作,在多任务系统中,位带操作 ...  
  普通操作和位带操作的汇编对比代码如下:  
  位带读操作相对简单,普通操作和位带操作的设置过程如下图所示:  
  普通操作和位带操作的汇编对比代码如下:  
  不管使用哪种方式,其实验现象都是一样的,但是使用位带操作更方便些,操作者步骤更少,下面举例说明。 实 ...  
  【stm32f103_led.h】  
  【stm32f103_led.c】  
  好了,接下来使用位带操作来写一个GPIO流水灯,同时使用库函数来做比较。 【main.c】 ...  
  以上代码的第一句是转换的关键,当然相对的前面的计算公式做了优化,也就是将SRAM和片上外设合并在一起。ad ...  
STM32中一些非常重要的C语言知识点汇总
2023-10-11 19:23
  • ST MCU
  • 34
  • 1125
  可见,程序蹦的同时还会在标准错误流中打印一条错误信息:  
  这个例子中只有几行代码,我们很快就可以找到程序蹦的原因就是变量c的值为0。但是,如果代码量很大,我们还 ...  
  此处,变量c作为分母是不能等于0,如果我们输入2 0,结果是什么呢?结果是程序会蹦: ...  
  下面分享一下assert的应用例子: #include #include int main(void) { int a, b, c; printf("请输入 ...  
  如果要使用,需要定义USE_FULL_ASSERT宏,并且需要自己实现assert_failed函数。特别的,使用STM32CubeMX生 ...  
  这是用来检查函数传入的参数的有效性。STM32中的assert_param默认是不使用的,即: ...  
  在STM32中,常常会看到类似代码:  
  注意assert()是一个宏,而不是函数。  
  assert_param 断言(assert)就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。 ...  
  说在前面的话 一位初学单片机的小伙伴让我推荐C语言书籍,因为C语言基础比较差,想把C语言重新学一遍,再去 ...  
2
3
近期访客