摘要:
注意:如果APB1预分频系数为1,则频率不变,否则TIMxCLK的时钟输入频率是APB1时钟的2倍频,这个是通过这句函数实现:18 //设置低速AHB时钟(APB1)为HCLK的2分频(TIM2-TIM5输入TIMxCLK频率将为72MHZ/2x2=72MHZ输入)
19 RCC_PCLK1Config(RCC_HCLK_Div2); 阅读全文
摘要:
STM32串口通信配置(USART1+USART2+USART3+UART4)串口中断函数也用了4种不同的收发方式实现,有定时器和非定时器,串口一也有用独立看门狗防止程序跑飞 阅读全文
摘要:
stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实际的flash大小,不同的芯片flash大小不同。
RAM起始地址是0x2000 0000,结束地址是0x2000 0000加上芯片的RAM大小。不同的芯片RAM也不同。
Flash中的内容一般用来存储代码和一些定义为const的数据,断电不丢失,
RAM可以理解为内存,用来存储代码运行时的数据,变量等等。掉电数据丢失。
STM32将外设等都映射为地址的形式,对地址的操作就是对外设的操作。
stm32的外设地址从0x4000 0000开始,可以看到在库文件中,是通过基于0x4000 0000地址的偏移量来操作寄存器以及外设的。
一般情况下,程序文件是从 0x0800 0000 地址写入,这个是STM32开始执行的地方,0x0800 0004是STM32的中断向量表的起始地址。
在使用keil进行编写程序时,其编程地址的设置一般是这样的: 阅读全文