当前位置: 首页 > news >正文 图书销售网站开发与实现学网页设计怎么样 news 2025/10/30 5:00:18 图书销售网站开发与实现,学网页设计怎么样,wap 网站 源码,网站的静态页面用什么做iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构#xff0c;主频650M、1G内存、8G存储#xff0c;核心板采用工业级板对板连接器#xff0c;高可靠#xff0c;牢固耐…iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构主频650M、1G内存、8G存储核心板采用工业级板对板连接器高可靠牢固耐用可满足高速信号环境下使用。共240PINCPU功能全部引出:底板扩展接口丰富底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块HDMI、CAN、RS485、LVDS接口、温湿度传感器(选配)光环境传感器、六轴传感器、2路USB OTG、3路串口CAMERA接口、ADC电位器、SPDIF、SDIO接口等 第四十章 二值信号量实验 40.1 信号量基本概念 信号量Semaphore是一种实现任务间通信的机制可以实现任务之间同步或临界资源的互斥访问常用于协助一组相互竞争的任务来访问临界资源。在多任务系统中各任务之间需要同步或互斥实现临界资源的保护信号量功能可以为用户提供这方面的支持。 40.2 二值信号量的基本概念 二值信号量既可以用于临界资源访问也可以用于同步功能。 二值信号量和互斥信号量以下使用互斥量表示互斥信号量非常相似但是有一些细微差别 互斥量有优先级继承机制二值信号量则没有这个机制。这使得二值信号量更偏向应用于同步功能而互斥量更偏向应用于临界资源的访问。 可以将二值信号量看作只有一个项目item的队列因此这个队列只能为空或满因此称为二值。任务和中断使用队列无需关注谁控制队列---只需要知道队列是空还是满。利用这个机制可以在任务和中断之间同步。 考虑这样一种情况一个任务用来维护外设。使用轮询的方法会浪费CPU资源并且妨碍其它任务执行。更好的做法是任务的大部分时间处于阻塞状态允许其它任务执行直到某些事件发生该任务才执行。可以使用二进制信号量实现这种应用当任务取信号量时因为此时尚未发生特定事件信号量为空任务会进入阻塞状态当外设需要维护时触发一个中断服务例程该中断服务仅仅给出信号量向队列写数据。任务只是取信号并不需要归还中断服务只是给信号。 在嵌入式操作系统中二值信号量是任务间、任务与中断间同步的重要手段信号量使用最多的一般都是二值信号量与互斥信号量互斥信号量在下一章讲解。为什么叫二值信号量呢因为信号量资源被获取了信号量值就是 0信号量资源被释放信号量值就是 1把这种只有 0 和 1两种情况的信号量称之为二值信号量。 40.3 实验目的 1STM32CubeIDE工具软件建立freertos工程 2学习二值信号量的相关知识与初步使用 我们的实验任务为通过三个按键使用二值信号量的方式分别来控制LED2、LED3和蜂鸣器状态的反转。 首先对实验进行分析其实本实验和上一章节的队列实验完成的现象相同但是实现的方式不同总共需要有四个任务分别为RECEIVELED2、RECEIVELED3、RECEIVEBEEP三个信号量接收任务和SEND信号量发送任务。所实现的功能如下 SEND任务通过三个按键分别为 VOL-UP、VOL-DN、BACK三个按键可以分别用来传递LED2Binary、LED3Binary、BEEPBinary三个二值信号量。 RECEIVELED2任务若是接收到LED2Binary二值信号量则LED2的状态进行反转。 RECEIVELED3任务若是接收到LED3Binary二值信号量则LED3的状态进行反转。 RECEIVEBEEP任务若是接收到BEEPBinary二值信号量则BEEP的状态进行反转。 本章节完成的实验存放位置为“iTOP-STM32MP157开发板\iTOP-STM32MP157开发板网盘资料汇总\08_freertos实验例程\04_二值信号量实验.zip” 40.4 二值信号量实验 40.4.1建立freertos_Binary工程 首先我们打开STM32CubeIDE软件进入软件界面之后我们点击File属性选择NEW下的STM32 Project的选项如下图所示 然后我们会进入下图所示界面在Part Number选择框输入STM32MP157A然后在右边的选择界面选择STM32MP157AAA然后点击Next选项 在Project Name框中输入工程名字freertos_Binary然后点击Finish选项即可如下图所示 等待工程创建完毕会询问我们是否要安装OpenSTLinux 由于我们是在windows环境下所以我们不需要安装点击NO即可 至此我们的工程创建完毕进入工程界面如下图所示界面 40.4.2输出引脚的配置LED和蜂鸣器 首先我们在下面的搜索框之中输入我们要配置的引脚我们在这里以PE1为例进行搜索输入名称之后对应的引脚在工程中会闪烁如下图所示 然后我们使用鼠标左键点击对应的引脚会弹出PE1的复用功能选择我们在这里选择复用为GPIO_Output功能如下图所示 配置完复用功能之后我们还要配置 Pin Reserved 选项如果不配置此项在生成工程代码的时候将不会看到有关这个 Pin 的初始化代码。继续选中 PE1右键弹出设置项我们选择Pin ReservedàCortex-M4。如下图所示 第二个LED的控制管脚PE14按同样的方法进行配置。 配置完成之后打开左侧菜单的 System CoreàGPIO 进入 GPIO 模式配置界面如下图所示 点击对应的引脚配置之后会弹出右下方的管脚配置界面如上图所示 在下方会列出要配置选项的具体说明和我们要进行的配置。 1选项 GPIO output level 用来设置IO口的输出电平的高低这这里我们选择LOW 2选项 GPIO mode 用来设置 IO 口输出模式为 Output Push Pull(推挽)还是 Output Open Drain开漏。本实验我们设置为推挽输出 Output Push Pull。 3选项 GPIO Pull-up/Pull-down 用来设置 IO 口是上拉/下拉/没有上下拉。本实验我们设置为上拉Pull-up。 4选项 Mzximum ouput speed 用来设置 IO 口输出速度为低速(Low)/中速(Medium)/高速 (Hign)/快速(Very High)。我们设置为高速 High 。 5选项 User Label 是用来设置初始化的 IO 口 Pin 值为我们自定义的宏这里我们填写为 LED3。按照如上要求设置后的界面如下由于PE14的配置相同只是最后的Label值不同也在下方列了出来 40.4.3输入引脚的配置按键 首先我们在下面的搜索框之中输入我们要配置的引脚我们在这里以PI2为例进行搜索由于三个按键的配置相同在这里我们只是列出了BACK按键的配置步骤输入名称之后对应的引脚在工程中会闪烁如下图所示 然后我们使用鼠标左键点击对应的引脚会弹出PI2的复用功能选择我们在这里选择复用为GPIO_Input功能如下图所示 配置完复用功能之后我们还要配置 Pin Reserved 选项如果不配置此项在生成工程代码的时候将不会看到有关这个 Pin 的初始化代码。继续选中 PI2右键弹出设置项我们选择Pin ReservedàCortex-M4。如下图所示 VOL-UP和VOL-DN对应的PI3和PI1引脚按同样的方法进行配置。在此就不一一展示。 配置完成之后打开左侧菜单的 System CoreàGPIO 进入 GPIO 模式配置界面如下图所示 选项 GPIO Pull-up/Pull-down 用来设置 IO 口是上拉/下拉/没有上下拉。本实验我们设置为上拉Pull-up。 选项 User Label 是用来设置初始化的 IO 口 Pin 值为我们自定义的宏这里我们填写为VOL-DN。按照如上要求设置后的界面如下由于PI2和PI3的配置相同只是最后的Label值不同也在下方列了出来 40.4.4时钟的配置 我们本次实验所采用的时钟为外部时钟HSE所以我们要在左侧属性栏中的System Core 属性下找到RCC将High Speed Clock选择为Crystal/Ceramic Resonator晶体/陶瓷晶振。如下图所示 然后在Clock Configuration里我们选择 HSE作为锁相环 PLL3P 的时钟源在 MCU 子系统时钟里输入 209 并回车软件会自动设置相应的倍频和分频如下图所示 设置完成之后如下图所示然后再手动配置 APB1DIV、APB2DIV 和 APB3DIV的分频值为 2。当 APB1DIV 的分频数大于 1 的时候基本定时器的倍频器倍频值始终为 2所以基本定时器的时钟频率为 209MHz。 40.4.5 配置 FreeRTOS 时钟配置完成之后我们要在左侧属性栏中的Middleware属性下找到FREERTOS将Interface函数接口选择 CMSIS_V2选择完成如下图所示 每个功能窗口对应的功能如下 窗口 对应的功能 Mutexes 互斥量 Events 事件 FreeRTOS Heap Usage 堆情况使用 User Constants 常量的定义 Tasks and Queues 任务和消息队列 Timers and Semaphores 软件定时器和信号 Config parameters 配置参数 Inclued parameters 头文件配置 Advanced settings 高级设置 然后我么进入到Tasks and Queues任务和消息队列窗口如下图所示 随后我们点击default默认创建的任务添加任务名字为SEND的工程修改优先级为最低osPriorityLow如下图所示 我们只需要修改任务名称和设置线程函数名即可修改完成之后点击OK按钮随后我们以同样的方式创建任务名字为RECEIVELED2、RECEIVELED3、RECEIVEBEEP的任务创建完成如下图所示 随后我们来到Timers and Semaphores选项界面即软件定时器和信号界面在该页面中总共有三个任务栏分别为定时器、二值信号量、计数信号量如下图所示然后我们点击中间二值信号量的Add添加按钮如下图所示 弹出队列的添加窗口之后对默认的Semaphore Name进行修改修改为LED2Binary然后我们点击确定按钮如下图所示 用同样的方法创建LED3Binary、BEEPBinary两个二值信号量创建完成如下图所示 配置完成之后我们需要在Project Manage下的Code Generator选项下勾选 Generate peripheral initialization as a pair of .c/.h files per peripheral 选项这样可以独立生成对应外设的初始化.h 和.c 文件方便配置的查看如下图所示 40.4.6工程的生成与完善 在上述的步骤完成之后按下键盘的“CtrlS”组合键保存保存 LED.ioc 文件系统开始生成初始化代码此处会弹出一个警告提示我们 Systick 定时器已被 HAL 库占用在 STM32MP157 Cortex-M4 内核上我们更换不了其他的定时器选择 Yes 继续生成代码即可。 工程生成之后如下图所示 然后我们进行工程的完善以及添加对应的逻辑代码。 40.4.6.1 对应文件与文件夹的添加 由于我们在裸机章节已经完善了对应的LEDBEEP和KEY文件所以我们将iTOP-STM32MP157开发板网盘资料汇总\06_Cortex-M4实验例程\03_KEY\KEY\CM4\Core\BSP文件拷贝到当前工程对应的位置拷贝完成如下下图所示 40.4.6.2 app_freertos.c文件的完善 我们要修改的 app_freertos.c文件路径如下图所示 打开app_freertos.c文件我们首先在/* USER CODE BEGIN Includes */和/* USER CODE END Includes */中间添加以下内容将led、beep和key的头文件进行添加。 #include ../BSP/Include/led.h #include ../BSP/Include/beep.h #include ../BSP/Include/key.h 添加完成如下图所示 然后我们来到文件的底部可以看到我们创建的RECEIVELED2_Task、RECEIVELED3_Task、RECEIVEBEEP_Task和SEND_Task 任务 修改RECEIVELED2_Task任务的for循环中的内容修改内容如下 osStatus_t xReturn osOK ;for(;;){xReturn osSemaphoreAcquire(LED2BinaryHandle,osWaitForever);if(osOK xReturn){LED2_TOGGLE();}} 修改完成如下图所示 修改RECEIVELED3_Task任务的for循环中的内容修改内容如下 osStatus_t xReturn osOK ;for(;;){xReturn osSemaphoreAcquire(LED3BinaryHandle,osWaitForever);if(osOK xReturn){LED3_TOGGLE();}} 修改完成如下图所示 修改RECEIVEBEEP_Task任务的for循环中的内容修改内容如下 osStatus_t xReturn osOK ;for(;;){xReturn osSemaphoreAcquire(BEEPBinaryHandle,osWaitForever);if(osOK xReturn){BEEP_TOGGLE();}} 修改完成如下图所示 随后我们修改SEND_Task 任务的内容修改内容如下 uint8_t key; for(;;) { key key_scan(); if (key) { switch (key) { case VOL_UP_PRES: osSemaphoreRelease( LED2BinaryHandle ); break; case VOL_DN_PRES: osSemaphoreRelease( LED3BinaryHandle ); break; case BACK_PRES: osSemaphoreRelease( BEEPBinaryHandle ); break; } } } osDelay(20); 至此我们的内容就添加完成了。之后进行编译烧写当按下VOL_UP按键时会释放LED2Binary信号量接收函数接收到该信号之后LED2状态翻转当按下VOL_DN按键时会释放LED3Binary信号量接收函数接收到该信号之后LED3状态翻转当按下BACK按键时会释放BEEPBinary信号量接收函数接收到该信号之后BEEP状态翻转至此我们的挂起和恢复任务实验就完成了。 文章转载自: http://www.morning.ntnml.cn.gov.cn.ntnml.cn http://www.morning.bsqth.cn.gov.cn.bsqth.cn http://www.morning.bmgdl.cn.gov.cn.bmgdl.cn http://www.morning.ryxdf.cn.gov.cn.ryxdf.cn http://www.morning.iiunion.com.gov.cn.iiunion.com http://www.morning.cbpkr.cn.gov.cn.cbpkr.cn http://www.morning.rzmsl.cn.gov.cn.rzmsl.cn http://www.morning.hphrz.cn.gov.cn.hphrz.cn http://www.morning.drbd.cn.gov.cn.drbd.cn http://www.morning.nppml.cn.gov.cn.nppml.cn http://www.morning.jqkrt.cn.gov.cn.jqkrt.cn http://www.morning.ftgwj.cn.gov.cn.ftgwj.cn http://www.morning.rxzcl.cn.gov.cn.rxzcl.cn http://www.morning.lxlzm.cn.gov.cn.lxlzm.cn http://www.morning.dddcfr.cn.gov.cn.dddcfr.cn http://www.morning.nmyrg.cn.gov.cn.nmyrg.cn http://www.morning.qsyyp.cn.gov.cn.qsyyp.cn http://www.morning.qgmbx.cn.gov.cn.qgmbx.cn http://www.morning.kbbmj.cn.gov.cn.kbbmj.cn http://www.morning.crsqs.cn.gov.cn.crsqs.cn http://www.morning.qkkmd.cn.gov.cn.qkkmd.cn http://www.morning.xnnxp.cn.gov.cn.xnnxp.cn http://www.morning.fhcwm.cn.gov.cn.fhcwm.cn http://www.morning.rfpq.cn.gov.cn.rfpq.cn http://www.morning.yrfxb.cn.gov.cn.yrfxb.cn http://www.morning.khtjn.cn.gov.cn.khtjn.cn http://www.morning.ytrbq.cn.gov.cn.ytrbq.cn http://www.morning.qqxmj.cn.gov.cn.qqxmj.cn http://www.morning.qhtlq.cn.gov.cn.qhtlq.cn http://www.morning.bdtpd.cn.gov.cn.bdtpd.cn http://www.morning.wsxly.cn.gov.cn.wsxly.cn http://www.morning.ppghc.cn.gov.cn.ppghc.cn http://www.morning.mlmwl.cn.gov.cn.mlmwl.cn http://www.morning.wwnb.cn.gov.cn.wwnb.cn http://www.morning.yrpg.cn.gov.cn.yrpg.cn http://www.morning.nlffl.cn.gov.cn.nlffl.cn http://www.morning.wfjrl.cn.gov.cn.wfjrl.cn http://www.morning.dbdmr.cn.gov.cn.dbdmr.cn http://www.morning.rflcy.cn.gov.cn.rflcy.cn http://www.morning.brlcj.cn.gov.cn.brlcj.cn http://www.morning.bwttj.cn.gov.cn.bwttj.cn http://www.morning.jpkhn.cn.gov.cn.jpkhn.cn http://www.morning.sbjhm.cn.gov.cn.sbjhm.cn http://www.morning.wjlkz.cn.gov.cn.wjlkz.cn http://www.morning.ylph.cn.gov.cn.ylph.cn http://www.morning.thntp.cn.gov.cn.thntp.cn http://www.morning.rzdpd.cn.gov.cn.rzdpd.cn http://www.morning.wqpb.cn.gov.cn.wqpb.cn http://www.morning.qlznd.cn.gov.cn.qlznd.cn http://www.morning.kehejia.com.gov.cn.kehejia.com http://www.morning.wbfg.cn.gov.cn.wbfg.cn http://www.morning.mmjqk.cn.gov.cn.mmjqk.cn http://www.morning.qcwrm.cn.gov.cn.qcwrm.cn http://www.morning.gmztd.cn.gov.cn.gmztd.cn http://www.morning.dpwcl.cn.gov.cn.dpwcl.cn http://www.morning.pwgzh.cn.gov.cn.pwgzh.cn http://www.morning.gwdkg.cn.gov.cn.gwdkg.cn http://www.morning.kdnrp.cn.gov.cn.kdnrp.cn http://www.morning.jyjqh.cn.gov.cn.jyjqh.cn http://www.morning.nswcw.cn.gov.cn.nswcw.cn http://www.morning.pdghl.cn.gov.cn.pdghl.cn http://www.morning.xjpnq.cn.gov.cn.xjpnq.cn http://www.morning.sdkaiyu.com.gov.cn.sdkaiyu.com http://www.morning.bksbx.cn.gov.cn.bksbx.cn http://www.morning.jxgyg.cn.gov.cn.jxgyg.cn http://www.morning.rlsd.cn.gov.cn.rlsd.cn http://www.morning.zsyrk.cn.gov.cn.zsyrk.cn http://www.morning.dzpnl.cn.gov.cn.dzpnl.cn http://www.morning.bttph.cn.gov.cn.bttph.cn http://www.morning.ckfqt.cn.gov.cn.ckfqt.cn http://www.morning.mnslh.cn.gov.cn.mnslh.cn http://www.morning.brxzt.cn.gov.cn.brxzt.cn http://www.morning.nfks.cn.gov.cn.nfks.cn http://www.morning.ffdyy.cn.gov.cn.ffdyy.cn http://www.morning.ppbrq.cn.gov.cn.ppbrq.cn http://www.morning.hjrjy.cn.gov.cn.hjrjy.cn http://www.morning.mbaiwan.com.gov.cn.mbaiwan.com http://www.morning.dlhxj.cn.gov.cn.dlhxj.cn http://www.morning.jcwt.cn.gov.cn.jcwt.cn http://www.morning.rshijie.com.gov.cn.rshijie.com 查看全文 http://www.tj-hxxt.cn/news/261440.html 相关文章: 营销型网站设计注意优质服务的网页归档 有没有做废品的网站两个wordpress共用用户 .net做的网站打开速度缓慢免费项目网站 东阳企业网站微商城建设高明网站设计服务 七台河建网站北京建网站开发 有什么网站专门做美食的吗律师网站 扁平化 国内优秀企业网站临高网站建设 深圳企业网站建设服务哪家公司好ppt精美模板 网站建设商务通什么意思做网站手机验证收费吗 知名网站建设公司排名wordpress flash加载 网站开发需求大吗wordpress 文章存档 个人做哪方面的网站潍坊住房与城乡建设局网站 手机网站源码最好网站模板没有html文件下载 政务网站风格网站开源是什么意思 知乎网站内容建设的逻辑湖南网站网络推广哪家奿 建筑网站案例qq建设网站首页 广东省住房城乡建设厅网站做网站常熟 郑州淘宝网站建设莱芜最新招工招聘启事 找人做一个网站要多少钱国外的服务器 天津市工程建设项目报建网站浪漫做爰网站 网站流量怎么赚钱同个网站可以做多个外链吗 互动性的网站淄博做网站市场 石家庄做网站制作黑色网站模版 网站建设教育培训做电影视频网站赚钱嘛 网站备案麻烦搜狗友链交换 怎么做服务器网站吗长春网络推广公司小技巧 wordpress网站破解和创互联的网站是多少 学校网站建设调查问卷青海网页设计制作 网站建设外包发展情况建网站的公司哪里有 电商网站界面设计流程微信小程序代码怎么弄