- 博客(10)
- 资源 (10)
- 收藏
- 关注
原创 记录一个真实项目的开发历程(6)--指纹通信 for debug
指纹通信部分 模组通信为一发一收机制, 实际上有可能给从机发一个命令包会回复多个数据包, 这个只能算是供应商设计的略low的协议了. 底层是usart+dma+idle的方式, 具体可以搜也可以留言讨论. 另外加了一个list用于管理指纹事件, 因为有些指纹事件是可以被打断的, 有些又是必须执行完的(注意一发一收的机制), 没有采用queue而用1个局部全局数组替代了. 我比较闹心的是指纹子事件的处理函数,写得很长很多switch case, 尽管是测试用但还是很闹心. 核心函数是fp_task.
2021-04-02 06:42:03
182
原创 记录一个真实项目的开发历程(5)--BUTTON for debug
button部分直接上代码, 先满足调试功能, 可以看到里面还有一些尚未完成的部分. 整体的思路是外部中断函数中触发按键, 然后启动一个定时器进行按键扫描, 状态机输出按键事件, 再利用任务通知直接恢复按键任务的阻塞状态进行按键事件的分发处理. 如果没有按键按下整个按键任务是堵塞状态, 主要是为了方便主控休眠而没有采用osDelay的方法. 按键事件的handler包括了按键初始化, 按键事件注册, 按键事件状态机扫描, 分层设计.欢迎留言 /* Include file -------------
2021-04-02 06:23:18
128
原创 记录一个真实项目的开发历程(4)--文件读写测试 for debug
FATFS文件读写接口测试 创建database任务 void StartTaskDataBase(void const *argument) { uint8_t retval = 0; MX_FATFS_Init(); for(;;) { osEvent oe = osMessageGet(myQueueDataBaseHandle, osWaitForever); if (oe.status == osEventMessage) { db_msg_t *pv = (db_msg
2021-04-02 06:15:13
104
原创 记录一个真实项目的开发历程(3)--调试组件
目录 调试组件 FREERTOS下的printf LED指示功能 调试组件 FREERTOS下的printf 保证有序打印每个任务的调试信息(互斥信号量), 不使用keil的MicroLIB选项. 其中USE_DEBUG_RUN_STATE_SUPPORT宏定义用来实时监测任务的堆栈剩余以及任务运行次数, 用来考察任务优先级设计是否合理,堆栈配置是否合理. 但是代价就是需要开一个100us或者50us或者10us的定时器来刷新vTaskGetRunTimeStats里面调用的参数, 会比较大程度
2021-04-02 06:02:53
184
原创 记录一个真实项目的开发历程(2)--移植操作系统(freertos) for debug
计划使用LPTIM1作为整个项目的滴答时钟,用于HAL库的计时以及低功耗模式下的ticks补偿, 因为该定时器可以在stop2模式下计数, 时钟源直接采用外部LF(32.768KHz), 而systick直接被freertos使用 system clock: freertos: /* USER CODE BEGIN Header */ /* * FreeRTOS Kernel V10.2.1 * Portion Copyright (C) 2017 Amazon.com, Inc. or
2021-04-02 05:38:06
277
原创 记录一个真实项目的开发历程(3)--文件管理系统(fatfs)
FATFS 首先是cubemx里面的基本配置, 注意flash的最小写单位是sector=4096Bytes, 然后实现flash的基本读写接口,需要单独测试通过之后才能布置到user_diskio.c里面去 void MX_FATFS_Init(void) { /*## FatFS: Link the USER driver ###########################*/ retUSER = FATFS_LinkDriver(&USER_Driver, USER...
2021-04-02 05:35:00
292
原创 记录一个真实项目的开发历程(1)--项目平台基础配件选择
开始写代码之前先选好操作系统和代码管理工具. 整个项目基于mdk keil 5.27.1.0, 代码采用stm32cubemx来生成和更新, 托管于github. 操作系统版本选用freertos 10.2.1, api接口选用 cmsis v1接口. fatfs 版本选用R0.12c. nordic的蓝牙芯片nrf52810采用sdk17.02, 可采ses或者keil来开发, 暂定keil. 其它信息总结 5个普通按键+1个主按键(home)-6个外部中断引脚, 可兼容性配置为wakeup方
2021-04-02 05:12:30
132
1
原创 记录一个真实项目的开发历程(0)--嵌入式低功耗项目平台搭建
项目平台搭建 最近需要开发一个低功耗的嵌入式产品, 由于产品本身是一个系列产品的demo, 因此考虑了平台化设计,兼容后续不同型号的产品功能迭代. 由于该系列产品的后续功能比较丰富且是低功耗产品, 而且外设会随着产品的不断迭代而增加, 因此主控的选择很重要, 多种休眠(stop/sleep)及唤醒(wkup/exirq)方式引脚足够多(100pin)并且有着不错的低功耗性能(2ua), 芯片封装不宜过大(UBGA),综上选用了stm32l4ve系列作为主控; 蓝牙作为标配,, 目前它的业务范围仅限于n
2021-04-02 04:55:20
190
1
原创 STM32F107的ili9320 显示图片
文章一开始附上这两个函数 因为配置后显示的图片存在一点瑕疵: /× 设定GRAM初始化屏幕显示区域×/ void Address_Set(u16 x, u16 y, u16 x_end, u16 y_end) { LCD_WriteReg(0x50, x); //水平起始坐标LCD_WriteReg(0x51, x_end); //水平终点 LCD_WriteReg(0x52, y);
2013-07-13 12:28:09
2493
2
SGP.23-v1.5-1.pdf
2021-04-02
nrf util.pdf
2021-04-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人