推荐阅读最新更新时间:2024-11-16 20:43
STM32波特率设置
USART1的波特率公式:Baud_Rate = Fck/(16*USARTDIV) USARTDIV = Fck/(16*Baud_Rate) 然后按下述方法计算,例如总线时钟频率为72MHz,配置波特率为9600过程如下: 求得:USARTDIV = 468.75, 因为STM32的波特比率寄存器USART_BRR分为整数部分和小数部分,所以分开计算。 则有,小数部分:DIV_Fraction = 16*0.75 =12 注:这里是将10进制小数转换成16进制的小数所以乘以16** 最接近的整数是:12 = 0x0C 整数部分DIV_Mantissa = 取整 (468.75) = 468= 0x1D4 于
[单片机]
STM32单片机电源端并联电容的重要性
如图,笔者用TQFP(32-100PIN)0.55MM转直插的转接板焊了一个STM32F207VET6的板子。板上引出了SWD调试接口(仅占用PA13和PA14),USART1串口引脚,插了一个触摸传感器和蜂鸣器模块。 所要实现的功能是:用手触碰一下触摸传感器后,蜂鸣器响一声。 接触摸传感器模块输出信号接到PA0口上。在没有接电源电容之前,每一次单片机复位(无论是软件复位还是按下复位键复位),PA0上会自动产生一个异常的高电平,要等上将近10秒才会回到低电平,然后触摸传感器才能正常工作。每次复位的时候蜂鸣器都会响一下,10秒之内按触摸键都没有反应。 后来我接了一个4.7μF的电解电容器和两个100nF的无极性电容器,问题就解决
[单片机]
MDK V5.12 + ST-Link V2 + Win10 STM32开发环境搭建1
养成每天写笔记的习惯,很多知识,时间一长就忘记了。以前都是用Jlink来仿真调试STM32,现在找不到Jlink去哪里了,可能留在了前公司。然后了解到ST-Link很便宜,就果断在淘宝上了化了不到20买了一个回来。 环境: 操作系统:Win10 64位 IDE:keil MDK uVision V5.12 仿真下载器:ST-Link V2 注:开始的时候使用keil MDK V4.0 的版本,好像对ST-Link V2的支持不好,然后就用了MDK V5.12 。 自己有个Jlink-V7是盗版的,MDK5.12 会识别到JLink-V7,直接闪退,MDK V4.0 倒是没有问题。 1:ST-Link V2 介
[单片机]
stm32之GPIO配置及库函数学习笔记——以流水灯为例
1.GPIO全称:gpio general-purpose input/output 通用输入/输出端口 2.GPIO寄存器中文名称与英文缩写对照表 3.GPIO_InitTypeDef结构体定义 typedef struct { uint16_t GPIO_Pin;//选择待设置的GPIO引脚 GPIOSpeed_TypeDef GPIO_Speed;//设置选中管脚的速率 GPIOMode_TypeDef GPIO_Mode;//设置选中管脚的工作状态(模式) }GPIO_InitTypeDef; 4.GPIO_Mode:端口的每个位可以分别配置成多种模式,中文名称与英文缩写对照表如下:
[单片机]
stm32 Usart 初始化
库文件中给出了初始化stm32 USART 的范例 /** * @brief Fills each USART_InitStruct member with its default value. * @param USART_InitStruct: pointer to a USART_InitTypeDef structure * which will be initialized. * @retval None */ void USART_StructInit(USART_InitTypeDef* USART_InitStruct) { /* USART_InitStruct members
[单片机]
Stm32空指令使用
1.使用 不需要添加任何头文件 写法: __NOP(); __nop(); __asm( nop ); 以上3种任一写法都可以,注意是2个下划线。 2.时间计算 一个nop约等于1/SYSCLK us,SYSCLK指的是系统时钟频率,MHz单位。 例如,使用了8M晶振,9倍频,因此SYSCLK是72MHz,所以一个nop约等于1/72us,
[单片机]
stm32的ucosII加上ucGUI学习
一、学会使用Keil调试工具。 单步调试,跳过函数,跳出函数 可以快速定位到程序的bug位置 二、系统板级驱动要加载需要的函数 三、怎么一步步根据具体需要添加系统功能 程序开发过程 1、加入所用到的封装库 2、写板级驱动BSP 包括GPIO配置 时钟配置 所用到的各种初始化函数用同一的void BSP_Init(void)函数调用 3、编写stm32f10x_it.c文件,设置中断服务函数 4、建立任务,包括定义任务名(函数名),堆栈空间(一个数组),任务优先级(一个宏定义) 5、任务优先级的选择,不合理的优先级,会导致程序无法正常运行,例如有7个任务,界面任务,触摸任务,三个L
[单片机]
GD32代码移植STM32(一)
GAIWEI例子:GD32F103移植STM32F103 使用相同FLASH和管脚数量相同的芯片,例如GDF103C8T6移植STM32F103C8T6程序。虽然两个款芯片的寄存器地址以及架构基本相同。但是需要注意的是GD32F10x主频是108兆,但是STM32F10x主频是72兆。所以需要针对以RCC时钟进行修改。 1.先将芯片的选项进行修改:查找对应芯片。 2.将STM32的启动文件替换成GD的启动文件。 3.修改时钟相关配置。 打开stm32f10x.h文件,#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500) /*! Time out for HSE start up
[单片机]