当前位置: 首页 > news >正文

企业网站做几个合适wx5 做网站可以么

企业网站做几个合适,wx5 做网站可以么,怎么做网站导航栏,一个公司网站设计需求以STM32裸机开发为例。 软件分层应用层驱动层硬件层固件层 ①最底层为固件层#xff0c;Firmware 这一层通常是官方给的库#xff0c;库函数对寄存器进行操作#xff0c;例如#xff1a; /*** brief Transmits a Data through the SPIx/I2Sx peripheral.* param SPIx: …以STM32裸机开发为例。 软件分层应用层驱动层硬件层固件层 ①最底层为固件层Firmware 这一层通常是官方给的库库函数对寄存器进行操作例如 /*** brief Transmits a Data through the SPIx/I2Sx peripheral.* param SPIx: where x can be* - 1, 2 or 3 in SPI mode * - 2 or 3 in I2S mode* param Data : Data to be transmitted.* retval None*/ void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data) {/* Check the parameters */assert_param(IS_SPI_ALL_PERIPH(SPIx));/* Write in the DR register the data to be sent */SPIx-DR Data; }②往上一层为硬件层Hardware。 这一层的函数是在库函数的基础上进一步封装比如根据STM32 SPI的特性SPI读写一个数据我们封装为一个函数例如 u8 SPI2_ReadWriteByte(u8 TxData) { u8 retry 0; while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) RESET){retry;if(retry 200)return 0;} SPI_I2S_SendData(SPI2, TxData); retry 0;while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) RESET) {retry;if(retry 200)return 0;} return SPI_I2S_ReceiveData(SPI2); }这个函数的也只读写送一个数据我们通常不会只读写一个数据而是连续读写送N个数据所以在这个函数的基础上再封装出一个函数例如 void SPI2_ReadWriteData(u8 *sendData, u8 *recvData, u32 length) {u32 i 0;for(i 0; i length; i){recvData[i] SPI2_ReadWriteByte(sendData[i]);} }③再往上一层是驱动层drive。 前面两层都是对STM32进行操作而这一层是对与STM32连接的元器件、模块、模组进行操作通常称为调试驱动比如调试STM32和外部FLASH W25Q128的SPI驱动。 这一层的函数通常是对W25Q128进行操作例如 u16 W25QXX_ReadID(void) {u16 Temp 0; W25QXX_CS 0; SPI2_ReadWriteByte(0x90); SPI2_ReadWriteByte(0x00); SPI2_ReadWriteByte(0x00); SPI2_ReadWriteByte(0x00); Temp | SPI2_ReadWriteByte(0xFF) 8; Temp | SPI2_ReadWriteByte(0xFF); W25QXX_CS 1; return Temp; }④再往上一层是应用层APP。 有很多人往往在main.c里面做功能应用导致main.c内容又多又长main函数又长又臭大多数公司的代码规范要求是不允许的。最好把功能应用剥离出来单独放在应用层让main函数简洁清晰。 例如 int main(void) { STM32_Sys_Init();W25Q128_Init();//如果这些初始化超过3个就要考虑封装成一个函数UART_Init();//如果这些初始化超过3个就要考虑封装成一个函数while(1){switch(g_main_process){case MAIN_UART_RECV_HANDLE://APP_func1();break;case MAIN_XXX_HANDLE://APP_func2();break;//.............default://APP_funcN();break;}} }总结 用分层思想不仅提高代码阅读性方便新员工接手辞职员工代码而不是一团糟让人一头雾水还提高可移植性如果项目需要换一颗MCU替换固件层替换硬件层几个库函数即可其他层不需要动。
http://www.pierceye.com/news/409591/

相关文章:

  • 一佰互联自助建站网站公司建设网站价格
  • 外贸网站模板免费下载wordpress英文显示改中文字体
  • 长春电商网站建设公司电话微博内容放到wordpress
  • 网站销售怎么样的商务网站模块设计时前台基础设施建设
  • 进空间的网站吗帝国建站教程
  • 做网站 业务流程图如何选择丹阳网站建设
  • 金属东莞网站建设技术支持开放平台产品经理
  • 全网营销型的网站苏州网站设计多少钱
  • 河南教育平台网站建设北京市工程建设信息交易网站
  • 正规品牌网站设计推荐如何上传自己的做的网站
  • 企业网站优化甲薇g71679做同等效果下拉词制作手机网站哪家好
  • 物流运输做网站的素材多用户商城系统价格
  • 营销型网站建设流程电脑怎么建网站
  • 郑州市汉狮做网站360免费建站
  • 安阳哪里有学做网站的学校做个公众号需要多少钱
  • 建站seo是什么成都做营销型网站
  • 网站建设哪个wordpress分类title
  • 建手机网站多少钱挂机软件定制
  • 网站建设 提案 框架河南一般建一个网站需要多少钱
  • 福建省建设人才市场网站深圳营销型网站建设优化
  • 晋城购物网站开发设计宣传网站有哪些
  • 在哪人网站要以接it项目做企业为什么要分析环境
  • 达令的网站建设wordpress上传视频
  • 织梦免费网站模块下载地址南充楼盘网
  • 深圳极速网站建设服务器做网站 然后百度推广
  • 西充县住房和城乡建设局网站深圳建设局网站打不开
  • 深圳常平网站建设制作公司网站开发qq群
  • 校园网站建设的感受论文专业微信网站建设公司首选
  • 国外免费logo设计网站免费网课平台
  • 高端网站设计定制公司页面跳转自动更新