从STM32F407到AT32F407(一)
雅特力公司的MCU有着性能超群,价格优越的巨大优势,缺点是相关资料少一些,我们可以充分利用ST的现有资源来开发它。
我用雅特力的STM32F437开发板,使用原子 stm32f407的开发板自带程序,测试串口程序,原设定串口波特率为115200,但是输出乱码,波特率改成230400,串口输出正常。
于是决心修改一下,时钟配置。主要参考《STM32f4xx中文参考手册.PDF》和RM_AT32F435-F437_CH_V2.03.pdf 。
主要问题出现在RCC PLL配置寄存器(RCC_PLLCFGR)
STM32F4XX的RCC PLL配置寄存器
AT32F407RCC PLL配置寄存器
可以看到 PLL_P 只能是4/8/16/32
#define PLL_P 4 //定义为4
看到了他们的配置不同,下面开始修改代码
(1)修改SystemInit()函数。
void SystemInit(void)
{/* FPU settings ------------------------------------------------------------*/#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */#endif/* Reset the RCC clock configuration to the default reset state ------------*//* Set HSION bit */RCC->CR |= (uint32_t)0x00000001;/* Reset CFGR register */RCC->CFGR = 0x00000000;/* Reset HSEON, CSSON and PLLON bits */RCC->CR &= (uint32_t)0xFEF6FFFF;/* Reset PLLCFGR register *///RCC->PLLCFGR = 0x24003010;RCC->PLLCFGR = 0x00033002;//AT32F437/* Reset HSEBYP bit */RCC->CR &= (uint32_t)0xFFFBFFFF;/* Disable all interrupts */RCC->CIR = 0x00000000;#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)SystemInit_ExtMemCtl();
#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM *//* Configure the System clock source, PLL Multiplier and Divider factors, AHB/APBx prescalers and Flash settings ----------------------------------*/SetSysClock();/* Configure the Vector Table location add offset address ------------------*/
#ifdef VECT_TAB_SRAMSCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
#elseSCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
#endif
}
修改配置寄存器初始值,防止硬件错误。
2.修改SetSysClock()中的配置代码
//stm32f407 原代码
/* Configure the main PLL */RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) |(RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24);//修改成如下代码/* Configure the main PLL */RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 2) +1) << 16) |(RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24);
3.修改 RCC_GetClocksFreq()和void SystemCoreClockUpdate(void)函数
将原代码:
pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) +1 ) *2;
改成如下代码
pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) -1 )* 4;
4. 修改延时函数,我目前的时钟是336MHZ
delay_init(336); //延时初始化
经这样修改,串口输出和延时输出正常工作。
可以看到还有PLLQ 是不一样的,抽空处理一下,请大家期待下期!
从STM32F407到AT32F407(一)相关推荐
- 正点原子:STM32F103(战舰)、STM32F407(探索者)、STM32F103(MINI)原理图和PCB
目录 1.STM32F103(战舰) 2.STM32F407(探索者) 3.STM32F103(MINI) 为各位嵌入式好朋友分享三个重磅资源,正点原子三件套,可直接打样使用~ 1.STM32F103 ...
- STM32F103 与 STM32F407引脚兼容问题
===========突袭网收集的解决方案如下=========== 解决方案1: STM32F103有的功能407都有,并且这些功能的引脚完全兼容,只是程序不同而已... 而STM32F407有的功 ...
- linux stm32 主从,STM32F407和STM32F051主从I2C通信方法
STM32F407和STM32F051主从I2C通信方法 作者:华清远见讲师 M4作为主机: int main(void) { HAL_Init(); SystemClock_Config(); MX ...
- 基于原子探索者stm32f407开发板的ucos-iii+lwip1.4.1的tcp server并发服务器完美解决例程(转)...
源:基于原子探索者stm32f407开发板的ucos-iii+lwip1.4.1的tcp server并发服务器完美解决例程 转载于:https://www.cnblogs.com/LittleTig ...
- STM32F407之搭建工程
STM32F407之搭建工程 一,使用软件和工具: 1,MDK5 2,串口调试助手:XCOM V2.0 3,烧写程序软件:FlyMcu 4,ST-Link仿真器 二,使用MDK5软件要点 1,选中MC ...
- stm32f407 usb cdc设备无法启动问题
最新要做一个项目,要求基于STM32F407实现USB CDC设备,首先想到的就是直接用STM32CUBEMX工具来生成,OK,话不多说,直接上过程: RCC配置: Sys配置 USB_OTG_FS配 ...
- SPIFFS文件系统移植–基于STM32F407
http://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=616126&highlight=%E6%96%87 ...
- STM32F407的硬件I2C
源:STM32F407的硬件I2C 我使用的是STM32的固件库. 硬件模块使用之前必须配置其参数,I2C的配置如下: void IIC_Config(void) {GPIO_InitTypeDef ...
- 8修改host_正点原子【STM32-F407探索者】第五十九章 USB 鼠标键盘(Host)实验
1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 上一章我们向大家介绍了如何利用 STM32F4 的 US ...
最新文章
- 实验室蒋田仔研究员:脑网络组图谱近10年研究详解【附PPT】
- jQuery的Ajax初识
- 数据结构与算法之归并排序
- ASP.NET中实现Flash与.NET的紧密集成(转,没看,有空研究一下)
- c#数据库訪问返回值类型为SqlDataReader时使用using时注意的问题
- layui添加复选框_layui复选框使用介绍
- 解决URL出现%E2%80%8E(Zero-Width Space)
- 2020 安装 nacos
- python 股票量化盘后分析系统V0.47
- cygwin安装wget
- _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv
- 银河麒麟系统PDF转Word
- 以新发展理念引领新型智慧城市建设
- Java中的23种设计模式的介绍
- 速度测试(speed test)
- 汉诺塔 问题 VIII
- 聊一聊DDR3中的ODT(On-die termination)
- oracle10g利用归档恢复,Oracle10g数据库归档与非归档模式下的备份与恢复
- CentOS 7 源码编译安装 Nginx
- zxr10交换机配置手册vlan_中兴ZXR10配置说明.doc