![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
stm32-HAL库
zd845101500
单片机、硬件设计、linux应用和驱动开发、搞机爱好者,尽量原创
展开
-
基于stm32F4 HAL固件库16BIT DAC AD5676驱动代码
【代码】基于stm32F4 HAL固件库16BIT DAC AD5676驱动代码。原创 2023-07-21 11:21:18 · 446 阅读 · 0 评论 -
如何查看HAL库版本\stm32 HAL版本号
查看HAL版本原创 2022-12-06 09:48:05 · 1927 阅读 · 0 评论 -
lan8720ping不通|识别不到网线|0x7809
问题描述:根据正点原子的LAN8720原理图我自己画了一块板子,测试用的是LWIP的TCP客户端和服务器的两个例程,始终是无法通过初始化。有一点需要注意,8720的复位引脚,原子的电路是通过一个三极管进行了取反操作,如果用GPIO复位,注意电平变化。LAN8720手册给出的电路图中也并没有电容,不知道原子的板子为什么加电容,而且还没有问题。网线是差分信号传输,感觉加电容不太合理,就把电容拆掉,然后就可以正常通信了。原理图如下,不说十分相似,也可以说是一模一样。原创 2022-09-19 09:57:08 · 3165 阅读 · 7 评论 -
STM32单片机printf重定向到串口
重定向就是将标准输出函数的出口指向串口,自定义一个int fputc(int c, FILE *stream)将形参的c变量通过串口发送即完成printf重定向。示例代码:STM32F0使用HAL固件库:int fputc(int c, FILE *stream){ huart1.Instance->TDR = (c & (uint8_t)0xFFU);//将c赋给串口1的DR寄存器,即printf重定向到串口1。 while(!__HAL_UART_GET_F...原创 2021-03-12 10:12:28 · 653 阅读 · 0 评论 -
51/stm32单片机软件调试方法与技巧
常用单片机调试方式有仿真器、串口、屏幕显示。1、仿真器仿真IAR、keil等集成开发环境配合仿真器调试程序很适合单片机优点:可设置断点、实时查看内存等缺点:要有仿真器2、串口调试相较于仿真器仿真,串口调试不需要仿真器,在某些没有或者不能使用仿真器的系统上更实用,通用性更强。一般串口输出我们会使用重定向到串口的printf函数或者自定义的串口输出函数(比如:send_de...原创 2020-01-19 14:32:38 · 4732 阅读 · 0 评论 -
stm32汇编与C接口/软件性能效率提升问题
使用ARMCC编译.\ArmCC.exe --arm -S .\main.c -o main_armcc.s如下两段C代码和其对应的汇编,逻辑相同,区别在于变量类型,一个使用8bit char一个使用32bit int,对应的汇编代码却不相同,使用char型会多出几步操作。所以在编程时如果没有特殊需求,尽量使用32位的类型int test_main(int a0,char a1, c...原创 2019-12-26 14:39:31 · 373 阅读 · 0 评论 -
IAR软件*.map文件查看程序占用ROM和RAM大小
查看单片机程序占用rom和ram的大小:IAR程序编译后会在Project\Debug\List文件夹下生成一个*,map文件,用文本编辑软件打开,在最后面的部分会有空间占用信息,例如下图readonly code和readonly data使用的是ROM空间,readwrite data使用的是SRAM空间。单片机RAM空间会被栈、全局变量占用,改变全局变量的占用会明显改变rea...原创 2019-12-10 16:31:11 · 8284 阅读 · 0 评论 -
RC522修改卡内密钥密码。
写数据时先经过寻卡、验卡等操作,再读写验证过的扇区的0-2块。修改卡片密码的过程与之相同先定义一个用于读写密码块的数组变量u8 CardKeyABlockBuf[16] = { /*!< 用于每个扇区密码块读写*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ...原创 2019-09-19 14:53:04 · 3728 阅读 · 0 评论 -
HAL库实践记录之读写内部FLASH
硬件STM32f030K6T6。固件:HAL对于内部分flash操作大同小异。原创 2020-02-13 13:21:24 · 3117 阅读 · 0 评论 -
GUIBuilder生成界面框架不显示的问题
使用GUIBuilder生成界面框架执行生成的函数CreateMyWin();黑屏,没有显示修改如下,加入GUI_Delay(10);之后界面即可正常显示、形参数值可自定以下说明转自其他博客、已声明出处。可以说emWin所有动作都靠循环执行GUI_Delay()或GUI_Exec(),两个函数没有本质区别,GUI_Exec()包含在GUI_Delay()中,即GUI_D...原创 2019-09-08 15:25:23 · 2118 阅读 · 2 评论 -
stm32F407+HAL+FreeRTOS+emWim
主控STM32F407ZGT屏幕正点原子2.8寸屏,驱动ILI9341FSMC驱动屏幕。配置如下,选择对应的RS引脚。使能CRC移植屏幕驱动,保证没有GUII的情况下,屏幕驱动程序能正常工作。下一步移植emWim。添加需要的文件。触摸暂时没有搞。GUI_X_FreeRTOS.c是从别人工程里扣的。M4内核要使能DSP,好像cube配置的工程默认开着的,因为加上以...原创 2019-09-07 15:45:35 · 1233 阅读 · 0 评论 -
HAL库实践记录之读写RC522
经过前两章调试UART和SPI正常工作。开始调试RC522。SPI与RC522模块通信速率不能过高,如有操作失败可先尝试降低SPI波特率。我选择了最低的速度操作流程如下注意:对卡片操作之前要进行PcdReset();复位。读取完成后也复位。否则会出现防冲撞失败,不知道是什么原因。...原创 2019-08-29 12:56:34 · 1583 阅读 · 2 评论 -
stm32CubeHAL库下载地址
https://my.st.com/content/my_st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32cube-mcu-mpu-packages.html#productsSTM32CubeF1:https://my.st.com/content/my_s...原创 2019-08-28 20:35:59 · 3436 阅读 · 0 评论 -
HAL库实践记录之SPI与RC522
HAL库SPI2与RC522通信实验板是原子mini板先按需求简单配置一下SPI2,再选两个GPIO与RC522另外两个引脚连接。预分频设置波特率这里要注意,波特率不能太高,具体最高支持多少自己实验就好。(找了一上午的故障原因)生成代码。RC522使用5个引脚进行连接。硬件连接说明:*RCC522 <----->MINISTM32**1--SDA <...原创 2019-08-28 11:14:27 · 1768 阅读 · 0 评论 -
HAL库实践记录之串口接收不定长数据
串口1接收不定长数据实验板是原子mini板一开始使用官方库,只能接受定长数据。把数据长度设置为1时,发送多字节数据时又会丢数。所以自己重写串口中断处理函数。首先搞一下Cube配置用法:Mode选异步,下边设置好参数。设置串口中断然后就配置完了。生成代码第一步在主函数初始化阶段添加如下代码__HAL_UART_ENABLE_IT(&huart1,UART_...原创 2019-08-27 10:42:37 · 3340 阅读 · 3 评论 -
ST-LINK USB communication error错误解决方法
stm32Cube生成的代码。使用ST-LINK V2配合STM32 ST-LINK Utility 和Keil 5向STM32F103 下载程序或进行Debug时,出现 “ST-LINK USB communication error”,解决方法如下,在sys选项中,Debug选择serial Wire,或者选择你所使用的Debug方式。...原创 2019-08-26 16:02:33 · 4134 阅读 · 0 评论 -
HAL库实践记录之定时器
LED定时闪烁实验先简单说明一下用法。stm32cube配置TIM3,时钟源选择内部时钟。在下方参数配置中输入预分频值和计数值,使能自动装载。在主函数中添加代码int main(void){ /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration------------------...原创 2019-08-26 11:28:44 · 1796 阅读 · 0 评论