广西·河池学院
广西高校重点实验室培训基地
本篇博客来自河池学院:无人机组
2020年8月9日
记录一下本周msOS系统培训内容
msOS系统的显示控件原理及消息机制及推进
事件产生消息(事件驱动编程机制),消息是外设中断或节拍,并且消息只能在大循环中接收。因为中断有优先级,若不能及时获取,有可能会丢失。
消息有16位,高8位,低8位。队列缓存消息,则先进先出。断言是用来判断队列是否满。满了则会报错。处于临界状态时由于中断也有消息,接收消息就会乱。
进程是指正在进行的过程或任务。同一个进程执行两次,是两个进程。进程分为并发和并行。并发只是看起来是同时,其实是单个CPU加上多道技术。并行是同时运行,具有多个CPU。并发可以看做伪并行。
msOSPLC电路乃GPIO口控制(ADC)
使用 GPIO_WriteBit函数(端口号,相应端口的引脚号,Bit_RESET/Bit_SET)
若为参数Bit_RESET,则相应的引脚置0,若为Bit_SET,则相应的引脚置1。
也可以使用BitAction(0/1),(实际上是枚举函数结构)来代替,分别代表置相应的位为0/1。
msOS的存储原理、节拍、串口通讯
ADC的初始化分为两个部分一个是IO初始化,另一个是ADC本身初始化。接着进行DMA设置,进行高速采样。在stm32提高了两到三个ADC端口,对于stm32可以使用DMA做对一个ADC1做高速采样,而ADC2不能使用DMA做高速采样,可以使用节拍或者定时器做低速的采样,这样可以把速度不同的分开,以防止高速的拖累低速的设备,这样两个高低速配合,以调高效率。
DMA把采用过来的数据放到DmaBuffer里面,总共有5路,4路ADC采样和1路温度,深度为8个表示每一路放8个数据。在采用高速的节拍对数据进行处理,在AdcSystick10000Routine函数中是对采用数据进行数据处理,进行了一些滤波操作,这里的滤波是对八个数据做累加求平均值,而对于温度部分在获取到模拟量以后需要进行线性转,映射成温度值。经过节拍滤波后放进寄存器里面。然后把存放在ADC数组中的数据与数据库进行连接