- 博客(15)
- 收藏
- 关注
原创 第12周实验---嵌入式RTOS多任务程序设计
RTOS的核心是实时任务调度器,它根据任务的优先级和时间要求,合理地分配系统资源,并保证任务及时响应和执行。它是在总结用户使用uC/OS-II反馈和经验的基础上诞生的,相比于uC/OS-II删除和更新一些少用的功能,添加更加高效的功能和服务。uC/OS-III全称是 (Micro C OS Three)微型的C语言编写的操作系统第三版,可同时用于32位处理器,16位处理器,8位处理器。不同的RTOS具有不同的特点和适用场景,开发人员需要根据具体的应用需求选择合适的RTOS。在gpio.c文件中修改代码。
2023-11-27 22:07:17
885
原创 第11周实验
RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。第一个是RTC预分频模块,它可以编程产生最长1秒的RTC时间基TR_CLK。系统时间按TR_CLK周期累加并与存储在RTC_ALR寄存器中的可编程时间相比,当匹配时候如果设置了闹钟中断允许位,可以产生闹钟中断。而在片上外设模式下,RTC的电源由主电源供电,并通过APB1接口与主机进行通信。
2023-11-25 17:51:32
377
原创 汉字点阵与OLE屏显
0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0xFF,0xFE,0x00,0x00,/“正”,0/“正”,0x00,0x00,0x7F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x11,0x00,0x11,0xF8,本次实验做得还是比较成功的,也深切地体会了测试温度,显示字幕的过程,让我对于这门课程的了解也更多,当然未来还需要继续进步、学习。//水平向左或者右滚动 26/27。
2023-11-25 13:00:54
861
原创 第10周实验---IIC协议读取温湿度数据
在I2C的硬件电路中,若满足一主一从或一主多从,所有的I2C设备的SCL和SDA都需要连在一起。发送一个字节:SCL低电平期间,主机将数据位依次放到SDA线上(高位先行),然后释放SCL,从机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可发送一个字节。接收一个字节:SCL低电平期间,从机将数据位依次放到SDA线上,然后释放SCL,主机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可接收一个字节。
2023-11-19 16:45:22
83
原创 第10周作业--汉字点阵与OLED屏显
空闲状态下,时钟线SCK处于低电平,在第一个时钟沿(CPHA=0),主设备发送数据,在第二个时钟沿(CPHA=1),从设备发送数据。CPHA决定数据采样的时刻,CPHA=0时,在每个周期的第一个时钟沿采样,CPHA=1时,在每个周期的第二个时钟沿采样。另外,SPI有四种模式,包括模式0(CPOL=0 CPHA=0),模式1(CPOL=0 CPHA=1),模式2(CPOL=1 CPHA=0)和模式3(CPOL=1 CPHA=1)。2. 当接收端检测到时钟的边沿信号时,立即读取数据线上的信号,得到一位数据。
2023-11-19 15:51:56
45
原创 第8~9周作业--定时器&;PWM应用编程
前面我们设定为ARR为99,故我们可以设定CCR在0-100波动,这样算出的占空比就是0-100%了,具体结果会在主函数里展示。根据公式,时钟频率为72MHZ/(PSC+1)/(ARR+1),经过计算,当PSC设置为719,ARR设置为99,时钟频率为1000HZ,也就是0.001s,也就是说,每个电平存在时间为0.001s。4.4 需要使用LED灯,所以还需要加上GPIO的配置函数。4.3 需要配置使能中断,设置为输出比较模式,这样才能将已激活的时钟信号进行输出比较从而得到PWM波形。
2023-11-04 21:19:17
109
1
原创 第八周实验----基于中断/DMA方式的串口通信
在DMA串口通信中,串口控制器和DMA控制器之间直接进行数据的传输,而不需要CPU的干预。通过配置DMA控制器,将相关传输的参数设置好,DMA控制器会独立地完成数据的传输并通知 CPU 传输完成,这样可以实现高速、低延迟的数据传输。编写一个字符串比较函数,将输入的数据字符串逐个与起始字符相比较,通过比较函数的返回值控制标志位,然后利用标志位的值不断改变而去控制字符串的发送。而TTL电平通常是正逻辑,高电平表示逻辑。在原有中断配置的基础上,打开USART1的DMA Settings选项,在栏中进行添加。
2023-11-02 18:51:36
78
1
原创 第七周---STM32串口通信入门
2,RS-422(EIA RS-422-AStandard),支持点对多一条平衡总线上连接最多10个接收器 将传输速率提高到10Mbps,传输距离延长到4000英尺(约1219米),所以在100kbps速率以内,传输距离最大。于是TTL电平的输入低电平的噪声容限就只有(0.8-0)/2=0.4V,高电平的噪声容限为(5-2.4)/2=1.3V。3,RS-485(EIA-485标准)是RS-422的改进, 支持多对多(2线连接),从10个增加到32个,可以用超过4000英尺的线进行串行通行。
2023-10-26 22:00:35
115
1
原创 第七周实验3--基于HAL库的LED流水灯
设置一个引脚为中断模式,规定当该引脚为高电平时触发中断,STM32CubeMX中进行设置。点击Projiect Manager,设置好工程存放的路径,选择MDK-ARM方式打开。这次实验我从中获得了很大的收获,知道了相关软件的应用,也更加熟悉了相关软件的使用。在下一个界面中点击SYS,在Debug选项选择Serial Wire。不断调用对应函数,不断改变对应引脚的电平值,展示如下输出波形。在接下来弹出的界面选择最新的安装包,点击install。更新代码,打开工程,找到如下函数。3.2手动控制流水灯。
2023-10-25 22:29:59
52
1
原创 在实验一的基础上,改用标准外设库方式使用某个端口GPIOx端口管脚控制几个LED灯,轮流闪烁,间隔时长1秒。
右侧下滑找到STM32 Embeded Sodtware,然后左侧下滑找到STM32 Standard Peripheral选项进入,然后根据你的芯片类型选择进入。打开Keil,点击Project,新建Kil工程,工程目录选择新建的Project文件夹。引脚为低电平的灯亮,高电平的灯不亮,高低电平转换周期(LED闪烁周期)为1.12秒左右。将解压的标准库中的文件逐一添加到新建文件夹中。User,Library,Start分别如下。新建工程文件,在文件中再新建如下文件。解压安装包,得到以下文件。
2023-10-16 22:46:23
50
1
原创 在实验一的基础上,改用标准外设库方式使用某个端口GPIOx端口管脚控制几个LED灯,轮流闪烁,间隔时长1秒。
右侧下滑找到STM32 Embeded Sodtware,然后左侧下滑找到STM32 Standard Peripheral选项进入,然后根据你的芯片类型选择进入。打开Keil,点击Project,新建Kil工程,工程目录选择新建的Project文件夹。引脚为低电平的灯亮,高电平的灯不亮,高低电平转换周期(LED闪烁周期)为1.12秒左右。将解压的标准库中的文件逐一添加到新建文件夹中。User,Library,Start分别如下。新建工程文件,在文件中再新建如下文件。解压安装包,得到以下文件。
2023-10-16 21:53:49
38
1
原创 第三周---GCC背后的故事&;C程序常量变量的地址分配
它现在还支持 Ada 语言、 C ++语言、 Java 语言、 Objective C 语言、 Pascal 语言、 COBOL 语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。五.编写一个 C 程序,重温全局常量、全局变量、局部变量、静态变量、堆、栈等概念,在 Ubuntu (x86)系统和STM32( Keil )中分别进行编程、验证(STM32通过串口 printf 信息到上位机串口助手)。创建静态库用ar命令。1.编辑生成列子程序hello.h,hello.c和hello.c。
2023-10-06 16:23:39
55
1
原创 实验一:STM32F103的流水灯点亮版本1(寄存器地址操作)
首先需要知道的是,STM32对于GPIO口的操作,无非就是操作下面的寄存器而已,所谓的标准库有好,HAL库也好,他们都只是对操作寄存器的过程进行了封装,目的是为了减轻编程时的工作负。GPIO_Mode_AF_OD = 0x1C, // 复用开漏输出。GPIO_Mode_AF_PP = 0x18 // 复用推挽输出。GPIO_Mode_Out_OD = 0x14, // 开漏输出。GPIO_Mode_Out_PP = 0x10, // 推挽输出。
2023-10-04 14:57:51
173
原创 STM32/51单片机编程入门(点亮LED)
一.安装并熟1悉Protues电路仿真软件,完成一个C51程序设计和仿真:1.已经完成Protues和Keil的安装。2.在Protues中画出如下所示的led流水灯原理设计图。3.在keil上编写如下程序//51单片机编程常用的头文件//延迟函数int i,j;for(i=0;i<a;j<1000;P0=0xfd;P0=0xfb;P0=0xf7;P0=0xef;
2023-09-24 22:15:58
119
1
原创 嵌入式第一周作业
请编写一个主程序文件main1.c和一个子程序文件sub1.c,要求:子程序sub1.c包含一个算术运算函数 float x2x( int a , int b ),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;再在终端创建一个hello.c文件,按i编辑,输入代码,按esc退出,再按冒号,再wq,再是回到终端进行编译,最后运行程序,流程和结果如下。1.在Ubuntu系统下用C语言编写一个简单的输出hello word程序,编译运行,首先打开终端下vim,gcc等。二,程序的编译与运行。
2023-09-17 16:31:01
45
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人