STM32/RT1052
文章平均质量分 89
以MCU为主的专栏
Ningjianwen
可接外包
展开
-
STemWin显示图片
目录一 通过BmpCvtST.exe软件将图片转换为C数组,然后通过GUI_DrawBitmapEx函数显示二 STemWin中bmp,jpg,gif,png格式图片的相关接口函数三 读取SD卡的BMP格式图片的数据,然后调用GUI_BMP_DrawEx函数BMP图片。四 读取SD卡的JPG格式图片的数据,然后调用GUI_JPG_DrawEx函数JPG图片。五 读取SD卡...原创 2019-08-16 11:45:32 · 3410 阅读 · 0 评论 -
STemWin显示中文的两种方式
目录方式一 使用FontCvtST.exe将需要使用的汉子制作成字库,字库以数组方式存在于c文件中方式二使用“点阵字库生成器V4.0易木雨软件工作室”生成完整的字库,字库存放在SPIFLASH本章完整的代码见:方式一 使用FontCvtST.exe将需要使用的汉子制作成字库,字库以数组方式存在于c文件中(Tips:该博客假设已经成功移植了STemWin,RGB...原创 2019-07-19 10:03:53 · 3898 阅读 · 1 评论 -
TouchGFX使用自定义容器实现对话框、虚拟键盘等功能
(本人业余时间接相关外包,欢迎联系!)软件环境:STM32CubeMX5.3 、TouchGFX 4.10.0Designer、uVision5.28.0.0硬件环境:正点原子阿波罗STM32F767开发板、4.3寸LCD接口屏(480×272)源码链接:https://github.com/ningjw/stm32f7_os/tree/bb1ae5387d1188141e9f6...原创 2019-09-17 15:17:34 · 6866 阅读 · 3 评论 -
TouchGFX 使用TextureMapper类实现指针旋转(仪表)功能
(本人业余时间接相关外包,欢迎联系!)软件环境:STM32CubeMX5.3 、TouchGFX 4.10.0Designer、uVision5.28.0.0硬件环境:正点原子阿波罗STM32F767开发板、4.3寸LCD接口屏(480×272) 通过让图片旋转,我们可以用TouchGFX模拟机械表的指针旋转,油表指针旋转,风扇转动等待各种炫酷的功能:下面开始讲...原创 2019-09-05 20:42:35 · 3792 阅读 · 3 评论 -
如何将STM32CubeMX + TouchGFX 工程中生成的图片,字库等超大数组保存到QSPI FLASH (W25Q256)
(本人业余时间接相关外包,欢迎联系!)软件环境:STM32CubeMX5.3 、TouchGFX 4.10.0Designer、uVision5.28.0.0硬件环境:正点原子阿波罗STM32F767开发板、4.3寸LCD接口屏(480×272)、W25Q256本博客源码链接(GitHub):https://github.com/ningjw/stm32f7_os/tree/016...原创 2019-08-30 11:07:23 · 10459 阅读 · 35 评论 -
使用STM32CubeMX 5.3配置使用TouchGFX
目录一 配置CRC二配置TIM三配置LTDC四配置SDRAM五为SDRAM配置MPU内存保护六 配置DMA2D七 配置FreeRTOS八 配置TouchGFX(本人业余时间接相关外包,欢迎联系!)软件环境:STM32CubeMX5.3 、TouchGFX 4.10.0Designer、uVision5.28.0.0硬件环境:正点原子阿波罗S...原创 2019-08-19 10:49:19 · 6249 阅读 · 0 评论 -
STM32CubeMX 5.2配置使用STM32F7 的 SD与FatFs
目录一 配置STM32CubeMX二编写测试代码三 将cc936.c文件中的uni2oem与oem2uni数组转换成bin文件一 配置STM32CubeMX1.配置ParameterSettings。(Tips:由于各种卡的品质有区别,有时候可以适当增加clockdivide的值)2 .配置DMASettings。(Tips:使用FatFs必须开启DMA,...原创 2019-07-30 16:31:30 · 1414 阅读 · 0 评论 -
STM32F7通过QSPI驱动W25Q256芯片
目录一 使用STM32CubeMX配置QSPI接口二 W25Q256初始化三W25Q256读写驱动(本人业余时间接相关外包,欢迎联系!)一 使用STM32CubeMX配置QSPI接口ParameterSetting与GPIOSetting配置如下:1.配置ClockPrescaler为2,即QSPI时钟 =AHB / ( Prescale...原创 2019-07-24 14:50:49 · 12600 阅读 · 2 评论 -
STM32F7驱动GT9147电容触摸屏控制芯片,并移植到STemWin
目录一 电阻驱动与电容驱动原理二 软件模拟IIC三 GT9147电容触摸屏控制芯片驱动四移植触摸屏驱动到STemWin(本人业余时间接相关外包,欢迎联系!)一 电阻驱动与电容驱动原理1. 电阻屏等效电路如下所示,当产生按压时:X-接地,X+接电源,Y+接ADC输入.通过读取Y+的电压以及电阻分压原理,可以得出触点的x坐标Y-接地,Y+接电源,X+接ADC输入...原创 2019-06-22 17:44:52 · 6807 阅读 · 3 评论 -
STM32CubeMX配置LTDC接口驱动RGB LCD, 并移植STemWin
目录一 通过STM32CubeMX配置LTDC二配置SDRAM与DMA2D三 通过STM32CubeMX配置STemWin(推荐)四添加STemWin代码(手动移植STemWin)五 编写RGB LCD驱动文件(手动移植STemWin)六 关联TFTLCD驱动函数与STemWin(手动移植STemWin)(本人业余时间接相关外包,欢迎联系!)开发板:...原创 2019-06-19 10:38:00 · 11228 阅读 · 13 评论 -
STM32CubeMX配置SDRAM
目录一 STM32F7存储器映射二 使用STM32CubeMX配置SDRAM三SDRAM初始化时序四为SDRAM空间配置MPU五 通过自定义动态分配内存函数使用SDRAM中的空间一 STM32F7存储器映射ITCM-RAM 0x0000 0000 ~ 0x4000 16Kbytes 只能CPU访问 FlashMemoryOn...原创 2019-06-18 11:39:42 · 12423 阅读 · 11 评论 -
LiteOS 链表操作
一链表初始化LOS_DL_LIST *head; /* 定义一个双向链表的头节点 */head = (LOS_DL_LIST *)LOS_MemAlloc(m_aucSysMem0, sizeof(LOS_DL_LIST));/* 动态申请头结点的内存 */LOS_ListInit(head); /* 初始化双向链表 */if (!LOS_ListEmpty(head)) ...原创 2019-05-30 11:23:05 · 442 阅读 · 0 评论 -
LiteOS 信号量/互斥量/消息队列/事件标志组
一 LiteOS信号量1.相关函数接口如下:创建计数型信号量 UINT32 LOS_SemCreate(UINT16 usCount, UINT32 *puwSemHandle); 创建二值信号量 UINT32 LOS_BinarySemCreate(UINT16 usCount, UINT32 *puwSemHandle); 删除信号量 UINT32 LOS_...原创 2019-05-29 22:46:13 · 993 阅读 · 0 评论 -
LiteOS 任务管理,软件定时器管理,内存管理
一 任务管理常用接口创建任务 UINT32 LOS_TaskCreateOnly(UINT32 *puwTaskID, TSK_INIT_PARAM_S *pstInitParam) 删除指定的任务 UINT32 LOS_TaskDelete(UINT32 uwTaskID); 挂起指定的任务 UINT32 LOS_TaskSuspend(UINT32 uwTas...原创 2019-05-29 14:12:25 · 678 阅读 · 0 评论 -
LiteOS 配置文件target_config.h文件详解
System clock module configurationOS_SYS_CLOCK SystemCoreClock 系统时钟 LOSCFG_BASE_CORE_TICK_PER_SECOND 1000 系统1秒中断多少次 LOSCFG_BASE_CORE_TICK_HW_TIME NO 使用专门的定时器作为系统滴答时钟 默认使...原创 2019-05-29 11:39:19 · 1701 阅读 · 0 评论 -
LiteOS移植到STM32F7 - 非接管中断方式
一 使用KEIL与STM32CubeMX创建一个stm32f7工程省略二官方下载LiteOS源码下载地址:https://github.com/LiteOS/LiteOS三复制LiteOS必要文件LiteOS源码包里有很多文件,将我们需要的几个目录复制下来,目录如下:LiteOS\targets\STM32F103VET6_NB_GCC\OS_CONFIG Lite...原创 2019-05-29 10:21:51 · 1049 阅读 · 0 评论 -
STM32CubeMX配置FSMC之TFTLCD驱动,并移植STemWin
目录一配置CRC与FSMC二 添加STemWin代码,以及配置头文件路径三 编写TFTLCD驱动文件四关联TFTLCD驱动函数与STemWin(本人业余时间接相关外包,欢迎联系!)一配置CRC与FSMC创建STM32F767+freeRTOS工程可参考:https://blog.csdn.net/Ningjianwen/article/details/90...原创 2019-05-31 15:13:06 · 13339 阅读 · 3 评论 -
FreeRTOSConfig.h 配置文件详解
目录1 Constants that describe the hardware and memory usage2 Constants related to the behaviour or the scheduler3Software timer definitions4 Constants that build features in or out5Constant...原创 2019-05-28 22:52:41 · 1425 阅读 · 0 评论 -
FreeRTOS 线程同步及通信 -- 信号量、事件、消息队列
目录一 FreeRTOS 信号量二 FreeRTOS事件组三FreeRTOS消息队列(本人业余时间接相关外包,欢迎联系!)一 FreeRTOS 信号量FreeRTOS信号量分为二值信号量、计数信号量、互斥信号量、递归互斥信号量1. 信号量相关接口创建二值信号量 void vSemaphoreCreateBinary( SemaphoreHandle...原创 2019-05-28 21:18:30 · 11416 阅读 · 0 评论 -
FreeRTOS 任务管理&软件定时器
目录一 创建静态任务二 创建动态任务三 常用函数接口四 使用软件定时器五 软件定时器常用接口一 创建静态任务使用静态任务的几点必要条件在FreeRTOSConfig.h文件中配置configSUPPORT_STATIC_ALLOCATION 宏定义为 1 实现函数vApplicationGetIdleTaskMemory()与 vApplicationG...原创 2019-05-27 21:49:21 · 1463 阅读 · 0 评论 -
keil+stm32cubemx+STM32F767+freeRTOS工程创建
使用该方式,能够去除繁琐的添加库文件与添加头文件路径,大大简化了freeRTOS的移植。1.在keil安装RT-Thread:点击pack Installer按钮,在弹出的 窗口中找到Pack页面下的CMSIS-FreeRTOS,如下图所示2. 使用Project->new uVision Project创建工程,设置工程名字,保存工程路径后选择芯片型号。3.接下来在...原创 2019-05-27 20:18:19 · 1931 阅读 · 1 评论 -
RT-Thread 动态内存管理与静态内存管理
一 静态内存池1.静态内存池接口创建内存池 /** * @param name :内存池名 *@param block_count:内存块数量 * @param block_size:内存块容量 * @retval创建内存池对象成功,将返回内存池的句柄;否则返回RT_NULL */ rt_mp_t rt_mp_cr...原创 2019-05-25 21:39:45 · 1332 阅读 · 0 评论 -
RT-Thread 线程同步及通信 -- 信号量、互斥量、事件、邮箱、消息队列
目录一 RT-Thread 信号量二 RT-Thread 互斥量三 RT-Thread 事件标志组四 RT-Thread邮箱五 RT-Thread消息队列一 RT-Thread 信号量1.信号量相关函数创建信号量 /** @paramname:信号量名称 * @paramvalue:信号量初始值 * @...原创 2019-05-24 22:36:35 · 2424 阅读 · 0 评论 -
RT-Thread 使用printf或者rt_kprintf函数进行串口打印
(本人业余时间接相关外包,欢迎联系!)一必须要配置好一个串口,这里省略二 配置使用printf添加如下重定向代码就行://标准库需要的支持函数struct __FILE{ int handle;};FILE __stdout;//定义_sys_exit()以避免使用半主机模式void _sys_exit(int x){ x = x;}i...原创 2019-05-23 22:10:49 · 10850 阅读 · 4 评论 -
RT-Thread 软件定时器
一 软件定时器相关函数初始化定时器管理系统 rt_system_timer_init rt_system_timer_thread_init 创建定时器 rt_timer_t rt_timer_create(const char* name, //定时器的名称 void (*timeout)(void* p...原创 2019-05-23 21:53:42 · 1789 阅读 · 0 评论 -
RT-Thread 任务管理
一 创建动态线程任务三要素:任务栈,任务控制块,任务函数。struct rt_thread led1_thread;/* 定义线程控制块 */void led1_thread_entry(void* parameter);//任务函数//注:动态线程的栈由任务自行动态分配创建立=一个简单的动态线程,代码如下:static rt_thread_t tid1 = RT_NUL...原创 2019-05-22 22:34:13 · 604 阅读 · 0 评论 -
keil+stm32cubemx创建STM32F767芯片的RT-Thread工程
使用该方式,能够去除繁琐的添加库文件与添加头文件路径,大大简化了RT-Thread的移植。1.在keil安装RT-Thread:在keil快捷面板上点击pack Installer按钮,在弹出的 窗口中找到Pack页面下的RealThread,如下图所示。2. 使用Project->new uVision Project创建工程,设置工程名字,保存工程路径后选择芯片型号。...原创 2019-05-22 20:31:10 · 3555 阅读 · 8 评论 -
ucos-iii 软件定时器 以及时间管理
一软件定时器相关函数创建定时器 OSTmrCreate() OS_CFG_TMR_EN OS_TMR CloseDoorTmr; OS_ERR err; OSTmrCreate(&CloseDoorTmr, /* p_tmr */ “Door close” /* p_name */ ...原创 2019-05-22 10:59:38 · 867 阅读 · 0 评论 -
ucos-iii 事件标志组
一 事件标志组相关函数创建事件标志组 OSFlagCreate() OS_CFG_FLAG_EN OS_FLAG_GRP EngineStatus; OS_ERR err; OSFlagCreate(&EngineStatus, “Engine Status”,(OS_FLAGS)0,&err); 删...原创 2019-05-21 22:26:44 · 395 阅读 · 0 评论 -
ucos-iii 信号量、互斥信号量
目录一 ucos-iii 信号量相关函数二 使用信号量三 互斥量(互斥信号量)常用函数四 使用互斥信号量访问共享资源五 任务内置信号量相关函数六 使用任务内置信号量一 ucos-iii 信号量相关函数创建信号量 OSSemCreate() OS_CFG_SEM_EN OS_SEM SwSem; OS_ERR err;...原创 2019-05-21 21:00:31 · 1110 阅读 · 0 评论 -
ucos-iii 消息队列
一 消息队列的相关函数创建一个消息队列 OSQCreate() OS_CFG_Q_EN OS_Q CommQ; OS_ERR err; OSQCreate(&CommQ,“Comm Queue”,10,&err); 删除一个消息队列 OSQDel() OS_CFG_Q_EN OS_CFG_Q_...原创 2019-05-19 23:27:16 · 586 阅读 · 0 评论 -
ucos-iii 任务管理
目录一 建立任务二 任务状态切换图三 任务就绪表四 时间片轮转调度任务五 统计任务OS_StatTask六 任务相关的其他函数介绍一 建立任务任务三要素:任务栈,任务控制块,任务函数OS_TCB StartTaskTCB; //任务控制块CPU_STK START_TASK_STK[128];//任务堆栈 void start_ta...原创 2019-05-19 21:53:58 · 340 阅读 · 0 评论 -
keil+stm32cubemx创建STM32F767芯片的uCOSIII工程
使用该种方式,能够去除繁琐的添加库文件与添加头文件路径,大大简化了ucos的移植。1.在keil安装ucos-iii:点击pack Installer按钮,在弹出的 窗口中找到Pack页面下的Micrium::RTOS,如下图所示2. 使用Project->new uVision Project创建工程,设置工程名字,保存工程路径后选择芯片型号。3.接下来在Manag...原创 2019-05-15 21:58:53 · 3053 阅读 · 4 评论