- 博客(11)
- 收藏
- 关注
原创 STM32F103VET6 SDIO读写不正常
硬件使用正点原子战舰V3开发板,采用cubumx配置程序,生成代码出现对SD进行数据读写的时候报错。没改之前程序写数据时出现SDIO_IT_TXUNDERR: Transmit FIFO underrun error interrupt,解决办法是安装下图修改参数,其中CloclDiv增大对数据传输稳定有帮助,我在将其改hsd.Init.ClockDiv = 2时,通信还存问题;测试结果如下,SD正常读写数据...
2022-05-29 23:28:27 1302
原创 GD32F350 不能位带操作原因及STM32位带操作原理
STM32支持位带操作(bit_band)的两个内存区范围是:(1)SRAM区的的最低1MB(0x2000_0000~0x200F_FFFF),所对应的位带别名区为0x2200_0000~0x23FF_FFFF;(2)片上外设区的最低1MB(0x4000_0000~0x400F_FFFF),所对应的位带区为0x4200_0000~0x43FF_FFFF;下面图片是来源于Cortex-M4技术手册里面GD32F3x0系列器件的GPIO映射表如下:地址范围已经超过片上外设区的最低1MB(0x
2022-05-25 16:12:35 856 2
转载 memset及sizeof的用法
一、sizeof(数组名)与sizeof(*数组名)举例#include<stdio.h>int main(){ int p[5]={1,2,3,4}; printf("sizeof(数组名)= %d\n",sizeof(p)); printf("sizeof *(数组名)= %d\n",sizeof(*p));}运行结果sizeof(数组名)= 16sizeof *(数组名)= 4分析:a代表数组的首地址,所以sizeof(a...
2022-05-21 15:41:10 2292
转载 c语言中void的用法
voidvoid最常见的用法,就是在函数中限定函数的参数和返回值的 void draw(void); 表明函数draw没有参数也没有返回值,void在别的的地方的应用我也没见过;实际上,如果把void 和int,char,double等类型放到一起理解的话,首先还是那句揭示本质的话:变量类型就是固定大小内存块的别名,那么void占用多大内存呢,编译器并没有定义void占用多大内存,所以对于void var; 这样的定义,编译器自然是不允许的,在vs中的错误提示是:不允许使用不完整的类型。void
2022-05-21 14:58:34 11092
转载 单片机中的ROM,RAM和FLASH的作用
ROM——作用存放指令代码和一些固定数值(掉电后数据存在) 程序经过编译、汇编、链接后,生成hex文件; 用专用的烧录软件,通过烧录器将hex文件烧录到ROM中 这个时候的ROM中,包含所有的程序内容:一行一行的程序代码、函数中用到的局部变量、头文件中所声明的全局变量,const声明的只读常量等,都被生成了二进制数据。 RAM——程序运行中数据的随机存取(掉电后数据消失) 整个程序中,所用到的需要被改写的量,都存储在RAM中,“被改变的量”包括全局变量、局部变量、堆栈段。 FLASH
2022-03-18 22:38:21 4598
转载 单片机内部扩展RAM
51单片机内部只有128字节的RAM(8051),而8052有256字节的RAM,低128字节RAM直接或间接寻址都可以,高128字节RAM与SRF特殊功能寄存器共用地址,SFR只能直接寻址,高128字节RAM只能间接寻址。所以通常用总线方式扩展一片RAM。一般用62256(32kX8bit RAM)。现在新出的51单片机都在内部扩展了外部RAM。这个RAM还是叫外部RAM,不过在芯片内部,之
2015-07-15 12:18:52 1586
转载 单片机内部扩展RAM
51单片机内部只有128字节的RAM(8051),而8052有256字节的RAM,低128字节RAM直接或间接寻址都可以,高128字节RAM与SRF特殊功能寄存器共用地址,SFR只能直接寻址,高128字节RAM只能间接寻址。所以通常用总线方式扩展一片RAM。一般用62256(32kX8bit RAM)。现在新出的51单片机都在内部扩展了外部RAM。这个RAM还是叫外部RAM,不过在芯片内部,之
2015-07-15 11:52:11 1264
原创 怎么选用MCU的RAM和ROM大小
这几天在捉摸单片机的ROM和RAM的选择: 总结规律:用Keil 开发软件编译程序后,在编译Output界面,会出现“Program Size: data=72.2 xdata=0 code=1737”,这到底反映了什么信息呢?其中:data=72.2代表你这段程序生成的目标代码所占用单片机的内部RAM空间是72.2个字节;xdata代表片外RAM空间,xdata=0表示
2015-07-15 09:05:57 1332
转载 基于MPLAB X IDE配置位设置讲解
基于MPLAB X IDE 配置位配置:在PICLF1823的数据手册中可以找到两个配置寄存器。一个是配置字1 ,一个是配置字2.对于初学者来说如此多的配置选项,该如何配置呢?我们要抓主重点。配置字中最重要的配置选项就是:看门狗配置 如:WDTE; 一般选择关闭看门狗MCLRE复位脚的配置 如:MCLRE;一般选择复位脚作I/O震荡器的选择: 如:FOSC;根据实际情况
2015-05-11 13:44:59 3732
原创 运用stm32f103c8t6的TIM4无输出PWM的解决方法
其PWM无输出的原因是:因为没有初始化时钟,IO口的初始化是无效的。例子:int main(){>>>>>>>>>>>>>>>>>>>>>>>>TIM4_Mode_Config();//无时钟初始化;TIM4_GPIO_Config(); //包含时钟初始化,则需要将其放在TIM4_Mode_Config()函数之前才会输出PWM;>>>>>>>>>
2015-04-07 11:57:23 3937
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人