推荐阅读最新更新时间:2024-03-16 16:07
STM32开发笔记76: 初始化RTC后死机的原因
项目开发中只要初始化RTC,则系统死机。其初始化步骤可参考日志:STM32开发笔记44:RTC驱动程序的移植。按照日志STM32开发笔记75: 使用STM32CubeMX点亮一个LED使用STM32CubeMX直接生成程序则运行正常。 分析原因在于,少移植了2个函数:HAL_RTC_MspInit和HAL_RTC_MspDeInit。这两个函数的实现非常简单,可以靠STM32CubeMX直接生成。 void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc) { __HAL_RCC_RTC_ENABLE(); HAL_NVIC_SetPriority(RTC_IRQn, 0x0, 0)
[单片机]
STM32 对内部FLASH读写接口函数
因为要用内部FLASH代替外部EEPROM,把参数放在STM32的0x08000000+320K处,其中20K是bootloader,300K是应用程序。 原理:先要把整页FLASH的内容搬到RAM中,然后在RAM中改动,然后擦除整页FLASH,再把改动后的内容写入原Flash页。下面程序调试通过。 /******************************************************************************* * Function Name : I2C_EE_BufferRead * Description : Reads a block of data from the
[单片机]
STM32开发板电容触摸屏驱动,单点有效
STM32开发板电容触摸屏驱动,单点有效 头文件touch.h: u8 ft5x0x_read_data(void); void ft5x0x_i2c_init(void); struct _ts_event { u16 x1; u16 y1; u16 x2; u16 y2; u16 x3; u16 y3; u16 x4; u16 y4; u16 x5; u16 y5; u8 touch_point; }; extern struct _ts_event ts_event; 源文件cap_touch.c #include stm32f10x_m
[单片机]
STM32定时器----通用定时器输出带死区互补PWM
功能:利用一个普通定时器,输出2路互补的、频率可调、占空比可调、死区可调的PWM 原理:如下图,计数模式为中心对齐模式 可以看出,CH3高电平区间是以计数器计到4为中心,向两边延伸的。 而CH4,因为输出极性相反,是以0为中心向两边延伸的。 CCR3变小,占空比上升 CCR4变大,占空比上升 CCR3与CCR4的和为ARR 注意,此模式计数器的计数周期=ARR,这与PWM模式:计数周期 = ARR+1不同 这点参考下图STM32参考手册: 故,整理出代码以及计算公式如下: void TIM3_PWMShiftInit(void) { float Duty = 0; u16 ARR = 0,PSC = 0
[单片机]
STM32—FMSC详解
这个是从网上找到的,内容如下: STM32 FMSC LCD难点解析: 以下是网上和自己整理的:感觉应该可以把STM32 ----FSMC LCD中的关键RS说清楚~ ---------------------------------------------------------------------------------------------------------------------- 第一个角度理解STM32有FSMC(其实其他芯片基本都有类似的总线功能),FSMC的好处就是你一旦设置好之后,WR(写)、RD(读)、DB0-DB15这些控制线和数据线, 都是FSMC自动控制的。打个比方,当你在程序中写到:
[单片机]
STM32裸机开发—外部中断
a. 初始化IO口作为输入 这一步需要设置你要作为外部中断输入的IO口的状态,可以设置为上拉/下拉输入,也可以设置为浮空输入,但浮空的时候外部硬件一定要上拉或下拉。否则可能导致中断不停地被触发。在干扰较大的地方,就算使用了上拉/下拉,也建议在外部硬件上设置上拉/下拉,这样可以在一定程度上防止外部干扰带来的影响。 *RCC_APB2ENR=0x00000019;//打开portb和portc的时钟和复用时钟 *PORTA_CRL=0x44444844;//设置PA2口为上拉/下拉输入模式 由于还需要驱动液晶屏所以同时打开了PORTB和PORTC的时钟。 b. 开启IO口复用时钟,设置IO口与中断线的映射关系
[单片机]
STM32 FSMC的用法--LCD
1. LCD/LCM的基本概念 液晶显示器(Liquid Crystal Display: LCD)的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。 LCM(LCD Module)即LCD显示模组、液晶模块,是指将液晶显示器件,连接件,控制与驱动等外围电路,PCB电路板,背光源,结构件等装配在一起的组件。 在平时的学习开发中,我们一般使用的是LCM,带有驱动IC和LCD屏幕等多个模块。 2. FSMC的基本概念 在STM32上开发LCD显示,可以有两种方式来对LCD进行操作,一种是通过普通的IO口,连接LCM的相应引脚来进行操作,
[单片机]
【STM32 Cotex-M3处理器系列编程】定时器灯亮
//定时一秒LED亮 #include stm32f10x.h unsigned int TimingDelay; void Delay(unsigned int x) { TimingDelay=x; while(TimingDelay--); } void TIM3_IRQHandler(void) { if(TIM_GetITStatus(TIM2,TIM_IT_Update) != RESET)//检查中断溢出标志位 { TIM_ClearITPendingBit(TIM2,TIM_IT_Update);//清中断溢出标志位 GPIO_SetBits(GPIOC, GPIO_Pin_7
[单片机]