- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 一个关于stm32的systick配置出错的小问题
中文网络上的《STM32 固件库使用手册》都是较旧版本的,关于systick的配置有好几条函数。而开发板的固件库当然是比使用手册要新的。现在的systick配置就两条函数:void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource);void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)然而
2017-09-17 19:47:41 2004
原创 字符串输入的一些陷阱
字符串的输入是很基础的问题,不过其中的陷阱也不少。最关键的规避陷阱的方法就是心里清楚输入缓冲(stdio)里还有什么?以下是十分常见的代码之一,其中scanf("%c", &ch);也经常用getchar(&ch);来写,它们是一样的。它们有一个优秀之处是,所有的符号,甚至EOF都能获取并返回。 while(ch != '\n') { scanf("%c", &ch)
2017-09-17 15:36:40 341
原创 函数指针一例分析
首先,贴上一段代码和它的运行结果。#include <stdio.h>#include <stdlib.h>typedef char (*fnp)() ;//声明函数指针的时候是不需要带参数的,但是要规定返回值int fn1(char a , int b){ return a;}char fn2(char a , int b ,int c){ return a;}//这样
2017-09-11 17:40:45 263
原创 单片机编程多动作(操作、事件)的设计方法心得(一)
> 在写单片机程序的时候,一个程序有几个动作(操作,事件…),几个动作还有某种关系,或互斥,或按时间顺序等等。 今天,在实习的同学问了我一个问题,他的工作是做机器人这方面的,它问我编程上的一些事情。他说:他的机器人有不同部位的不同动作,有些动作之间互不影响的,这些动作之间怎么安排。我当时按照他的情况大致说了方案,两人对话这么说比较难说,想想,还是梳理一番记录下来比较好。 本文应该算作程
2017-08-21 23:47:59 1205 1
原创 ESP8266http工作队列的实现方法
有一次在做开发的过程中,发现8266的三个任务已经尽数用完了o(╯□╰)o。没办法,串口驱动也要用一个呢。后来干脆想,把HTTP的任务加在队列里,定时扫描队列出对执行就好了,然后就开始构想代码。于是就是下面两片代码。app_net_work为上层提供app_net_work_init()、http_set_work(http_work_t job),这两个函数,顾名思义就是初始化队列和入队。然后
2017-08-07 16:12:44 843
原创 嵌入式实时操作系统程序设计学习心得(二)
数字通信数据不大时,用全局变量作为公共资源,配合中断访问,以信号量同步之。数据大时,运用消息队列机制,把内存数据块作为内容缓冲区。消息邮箱具有行为同步的功能,当双方的执行频度一样时,消息邮箱很适合,此时的消息是通信双方的局部变量。(注意,ISR应用static保护局部变量,否则它的局部变量会随其结束而消失)发送一个字以内的短小消息时,可以利用消息邮箱机制,把数据伪装成指针传递给其他
2017-08-07 15:32:26 713
原创 嵌入式实时操作系统程序设计学习心得(一)
任务的特性: 独立性:表现为逻辑上的平等性和信息传输的异步性。平等性,即可以独占CPU,一个任务“看不见”另外一个任务;异步性,指任务之间信息传递必须通过媒介。 并发性:任务交替进行,宏观上并发进行。 动态性:任务的状态是动态变化的,不能一直占有CPU。(休眠、就绪、运行、等待、中断) 任务划分小结: 关键任务:必须得到运行机
2017-08-05 20:42:58 3917 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人