STM32编程
嵌入式小跳蛙_刘军
这个作者很懒,什么都没留下…
展开
-
NVIC_SystemReset使用及系统复位
NVIC_SystemReset:STM32中NVIC_SystemReset()函数的作用?什么时候用?STM32软件复位有两种方式(1)方式一: NVIC_SystemReset() 函数用来复位STM32.注意1:从SYSRESETREQ 被置为有效,到复位发生器执行复位命令,往往会有一个延时。在此延时期间,处理器仍然可以响应中断请求。但我们的本意往往是要让此次执行到此为止,不要再...原创 2018-12-03 15:53:03 · 19550 阅读 · 0 评论 -
STM32CAN总线配置基础教程
①配置相关引脚的复用功能,使能CAN时钟。要用CAN,先要使能CAN的时钟,CAN的时钟通过APB1ENR的第25位来设置。其次要设置CAN的相关引脚为复用输出,这里我们需要设置PA11为上拉输入(CAN_RX引脚)PA12为复用输出(CAN_TX引脚),并使能PA口的时钟②设置CAN工作模式及波特率等。通过先设置CAN_MCR寄存器的INRQ位,让CAN进入初始化模式,然后设置CAN_MC...原创 2018-12-04 09:42:51 · 6993 阅读 · 0 评论 -
STM32端口复用与串口通信
STM32端口复用STM32串口通信接口原创 2018-12-04 09:38:26 · 2334 阅读 · 0 评论 -
STM命名含义与BOOT启动方式
STM32含义STM32通过Boot0和Boot1设置启动方式一键下载电路?原创 2018-12-04 09:35:45 · 289 阅读 · 1 评论 -
有点复杂的CAN多通道多FIFO循环发送函数
结构体声明和定义:hal_can_tgtppkg_txpkg(CAN_CH_CMDMODE, (uint8_t *)phd, sizeof(PACK_HEAD_t));typedef struct { uint8_t Phy; uint8_t Win;}CANCFG_UNIT_t;static CANCFG_UNIT_t can_config_tab[HAL_CANWINNUM_M...原创 2018-12-04 09:27:13 · 1414 阅读 · 2 评论 -
STM32最小系统和时钟详解
最小系统1,、供电电路2、复位电路3、时钟:外部晶振(2个)4、Boot启动模式选择5、下载电路(JTAG)6、后背电池时钟详解:在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。①、HSI是高速内部时钟,RC振荡器,频率为8MHz。②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。③、LSI是低速内...原创 2018-12-04 09:16:53 · 5533 阅读 · 1 评论 -
Stm32ISP协议解析;BIN与HEX阅读
HEX和BIN的区别https://blog.csdn.net/spdian/article/details/52963467HEX文件解析https://blog.csdn.net/a1037488611/article/details/43340055HEX文件和BIN文件是我们经常碰到的2种文件格式。因为自己也是新手,所以一直对这两个文件懵懵懂懂,不甚了解,最近在做STM32单片机的...原创 2018-12-06 11:00:01 · 4745 阅读 · 0 评论 -
事件与中断
串口中断触发但是IT_Stat检查不到,此时应当清理FlagStatusunsigned char data=0;if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET){ USART_ClearITPendingBit(USART1, USART_IT_RXNE); //USART_ClearFlag(USART1,USART_FLA...原创 2018-12-06 10:57:43 · 2519 阅读 · 0 评论 -
Boot与App程序设计
1.flash分配:Boot一般在7K到10K,EE可以视情况分配,假如flash足够大,可以采用先写到APP之外的地址,然后将数据搬移到APP起始地址。EE页大小设置,Flash页大小设置#define FMC_PAGE_SIZE 0x800一般F0为1k,F1为2K(必须参考手册,设置为最小可擦除页的倍数)2.中断的处理,找出对应芯片的中断数量NVIC_PriorityGrou...原创 2018-12-06 10:54:00 · 3709 阅读 · 0 评论 -
SysTick定时器与延时函数的几种配置方法
SysTick定时器SysTick定时器被捆绑在NVIC中,用于产生SysTick异常(异常号:15)。Systick 部分内容属于NVIC控制部分,一共有4个寄存器,名称和地址分别是:STK_CSR, 0xE000E010 – 控制寄存器STK_LOAD, 0xE000E014 – 重载寄存器STK_VAL, 0xE000E018 – 当前...原创 2018-12-06 10:52:43 · 4200 阅读 · 0 评论 -
STM32串口中断的方式发送
我将其改为真正的中断发送。步骤一:初始化GPIOGPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //LED1-PC10GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_S...原创 2018-12-06 10:38:30 · 27581 阅读 · 2 评论 -
窗口看门狗配置过程
① 1、使能看门狗时钟: RCC_APB1PeriphClockCmd();② 设置分频系数: WWDG_SetPrescaler();③ 设置上窗口值: WWDG_SetWindowVa原创 2018-12-03 17:05:23 · 1340 阅读 · 0 评论 -
定时器中断实现步骤
①1、使能定时器时钟。 RCC_APB1PeriphClockCmd(); ② 初始化定时器,配置ARR,PSC。 TIM_TimeBaseInit();③3、开启定时器中断,配置NVIC。 void TIM_ITConfig(原创 2018-12-03 17:03:06 · 5171 阅读 · 0 评论 -
MDK中hex转BIN文件生成
MDK开发的技巧:1.使用fromelf.exe程序,将.hex或者.axf转化为.bin文件。2.利用.bat批处理文件,将.bin和.hex拷贝到需要的文件夹下。例如:E685工装中Run#1 D:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o ./Debug/AppT081E685.bin ./Debug/AppT081E685.axfR...原创 2018-12-03 16:57:13 · 3750 阅读 · 0 评论 -
软件断点和硬件断点的区别和数量限制
软件断点和硬件断点的区别和数量限制所有的ARM7/ARM9芯片,内部有2个断点单元。断点单元可以用于设置硬件断点或是软件断点。先说说硬件断点和软件断点的区别。硬件断点是通过监测地址来触发断点的。所以,硬件断点可以设置在任何地方,不管是FLASH,ROM还是RAM,只要给定地址就可以了。而软件断点是通过监测特定的指令来触发断点的。在某个地址设置软件断点的时候,仿真器会将这个地址的数据/指令替换成...原创 2018-12-03 16:04:19 · 4014 阅读 · 1 评论 -
sprintf、memset、memcmp、atoi用法和实现
Sprintf()函数的用法函数功能:把格式化的数据写入某个字符串函数原型:int sprintf( char *buffer, const char *format [, argument] … );返回值:字符串长度(strlen)例子:char* who = “I”;char* whom = "CSDN";sprintf(s, “%s love %s.”, who, who...原创 2018-12-04 09:51:26 · 263 阅读 · 0 评论