STM32之旅3——时钟数】的更多相关文章

STM32之旅3--时钟数 STM32F1是M3内核,它的时钟数很庞大,让一个初学者去看,估计会很吃力,和我们入门的8051单片机的时钟不同,这里又倍频.又分频,而且还分成好多个时钟,不同的外设时钟不一样. 总感觉不都明了,后来在STM32CubeMX中看到了时钟配置,这个看起来就明了多了…
STM32之旅4--USART 串口也是用的比较多的,在STM32CubeMX中生成代码后,需要添加一些代码才可以用. drv_usart.h: #ifndef __DRV_USART_H #define __DRV_USART_H #define USART1_MAX_LEN 64 //接收区长度 #define USART1_BUFF_CACHE_LEN 1 //接收缓冲区长度 extern uint16_t g_usart1_sta; //接收状态[1:15],最高位为接收完成标志 ext…
STM32之旅5--IWDG stm32有两个看门狗,一个独立看门狗(IWDG).一个窗口看门狗(WWDG):独立看门狗是时钟源是内部的40kHz的低速时钟,即使主频出问题了,独立看门狗也不会受到影响. 下面是使用独立看门狗需要了解的一些内容. hal库使用很简单,就只提供了两个函数:一个初始化函数.一个喂狗函数 喂狗: HAL_IWDG_Refresh(&hiwdg);…
STM32之旅2--按键     几乎每个项目都有用到按键,为了避免以后在做大项目的时候还在琢磨按键怎么写,现在写一个,方便以后使用.这里是最简单的独立按键驱动方法,和学习51单片机是的一样,更好的方法以后再慢慢补充. 按键驱动 drv_key.h: #ifndef __DRV_KEY_H #define __DRV_KEY_H #define RESET 0 #define SET 1 #define WK_UP_PIN GPIO_PIN_0 #define WK_UP_PORT GPIOA…
STM32之旅1--LED 学习了51单片机后,就要接触到更高级一点的单片机了,比如STM32,ST也有很多款单片机,现在用比较基础的学习--STM32F103RCT6. LED驱动 hal库的使用比较简单,可以直接在STM32CubeMX中分配好IO之后一键生成工程,为了提高程序的可读性,自己写一个头文件,在调用过程中会比较简单. drv_led.h: #ifndef __DRV_LED_H #define __DRV_LED_H #define LED1_PIN GPIO_PIN_8 #de…
在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. 其实是四个时钟源,如下图所示(灰蓝色),PLL是由锁相环电路倍频得到PLL时钟. ①.HSI是高速内部时钟,RC振荡器,频率为8MHz. ②.HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz. ③.LSI是低速内部时钟,RC振荡器,频率为40kHz. ④.LSE是低速外部时钟,接频率为32.768kHz的石英晶体. ⑤.PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2.HS…
stm32的程序用MDK软件仿真时,由于系统时钟初始化函数里有个等待系统时钟准备好的循环,所以过不去. 设置方式如下:这么设置之后仿真时就可以直接进入main函数了.…
最近一个项目用到了MODBUS协议,就学习了一下,这里做一下记录以免后续忘记. 要用到MODBUS肯定要先知道是MOBUS协议,这里呢我们就又要先理解协议的含义了. 所谓的协议是什么?就是互相之间的约定嘛,如果不让别人知道那就是暗号.现在就来定义一个新的最简单协议. 例如: 协议: “A”--“LED灭” “B”--“报警” “C”--“LED亮” . 单片机接收到“A”控制一个LED灭,单片机接收到“B”控制报警,单片机接收到“A”控制一个LED亮.那么当收到对应的信息就执行相应的动作,这就是…
一种是在系统开始--运行里输入cmd,查看armcc状态.详情见推文: http://blog.csdn.net/hicui/article/details/7350805(笔记记录,请勿见怪) 都没有问题的话,那么可以尝试: 在keil里的菜单栏依次选择Project->Manage->Components,Environment andBooks(CEB)(或者直接点击工具栏的图标), 然后在CEB里选择Folders/Extensions标签页,在RealView Folder里选择ke…
WWDG是stm32f103的窗口看门狗,使用的时钟是APB1的时钟,在使用wwdg是被一个小问题困扰了很久--没有打开中断,无法喂狗,一直复位. 初始化完之后需要使能中断: __HAL_WWDG_ENABLE_IT(&hwwdg, WWDG_IT_EWI); 在中断回调函数中喂狗: void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef *hwwdg) { HAL_WWDG_Refresh(hwwdg); }…