自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嵌入式之斋

汇聚点滴,凝结智慧

  • 博客(657)
  • 资源 (314)
  • 问答 (1)
  • 收藏
  • 关注

原创 Beautiful Soup的使用例子

Beautiful Soup是Python中常用的HTML/XML解析库,它可以将HTML/XML文档解析为树形结构,方便用户进行各种操作。使用Beautiful Soup删除HTML/XML文档中的元素也非常简单。使用Beautiful Soup修改HTML/XML文档中的元素非常简单。使用Beautiful Soup查找HTML/XML文档中的元素非常方便。使用Beautiful Soup解析HTML/XML文档非常简单,只需使用。例如,以下代码演示了如何查找HTML文档中的。

2023-05-17 21:00:00 732

原创 c#语言介绍

C#(读作C Sharp)是由微软公司开发的一种面向对象的程序设计语言。它最初在2000年时推出,以取代Microsoft Visual Basic 6.0,综上所述,C#是一种多用途、面向对象的程序设计语言,其简单、清晰的语法和拥有丰富的类库系统使其成为编写高效、可靠、易于维护的Windows应用程序的理想选择。Framework中的核心语言之一。在这个例子中,我们使用了C#命名空间来组织代码,使用了。这里我们定义了四个变量,分别是一个整型。方法是程序的入口点,通过调用。

2023-05-16 21:30:00 719

原创 c#语言的输入输出

类中提供的方法即可实现。当然,在实际应用中,可能需要更复杂的输入输出操作,例如文件输入输出或网络传输等,这需要使用相应的类库来实现。此外,如果用户输入的不是合法的整数,例如输入了一个字符串或者一个小数,那么程序就会抛出异常。总之,在C#语言中,控制台输入输出操作非常简单,只需要使用。方法读取用户输入的字符串时,返回的结果包含换行符。方法读取用户输入的字符串和整数,然后将其存储在。方法将输入的字符串转换为整数。在这个例子中,我们首先使用。方法输出提示信息,并使用。在C#语言中,可以使用。

2023-05-15 21:00:00 1864

原创 C语言实现学生成绩管理系统

这个示例程序实现了添加、查询、删除、修改学生信息的功能。在程序中,使用了结构体和指针等C语言的基础语法,同时也涉及到了动态内存分配和释放等高级语法。总之,C语言作为计算机行业的核心语言,确实非常重要,无论是在操作系统、硬件驱动领域,还是在科学计算和前端开发等领域,都有广泛应用。C语言可以通过结构体和指针等基本语法来实现学生成绩管理系统。

2023-05-14 21:00:00 1396

原创 C语言预处理命令

C语言预处理命令用于在编译之前对源文件进行简单加工。

2023-05-13 17:30:00 247

原创 C语言的文件读取、写入

文件读取和写入是C语言中非常重要的操作之一,可以通过标准库函数来实现。

2023-05-12 17:00:00 3169

原创 C语言随机读写文件

总之,在C语言中,随机读写文件的操作可以使用fseek,fread和fwrite等标准库函数来实现。在实际开发中,可以根据具体需求选择不同的读写方式和函数,以提高程序的性能和效率。使用fseek函数将文件指针移动到指定位置,然后使用fwrite函数往文件中写入数据。使用fseek函数将文件指针移动到指定位置,然后使用fread函数从文件中读取数据。C语言可以通过标准库函数实现文件的随机读写操作。

2023-05-11 18:00:00 267

原创 C语言自定义数据类型

除了使用结构体类型外,我们还可以使用typedef关键字将结构体类型定义为一个新的类型名,这样使用起来更加简洁。综上所述,C语言自定义数据类型的本质是结构体类型,我们可以使用结构体类型以及typedef关键字定义自己的数据类型。上述代码定义了一个Person结构体类型,该类型包含三个成员变量:name、age和height。上述代码定义了一个名为p1的Person类型的结构体变量,并对其成员变量进行了初始化。上述代码通过结构体变量p1以及点操作符访问了结构体成员变量。三、访问结构体成员变量。

2023-05-10 20:00:00 234

原创 freeRTOS怎么解决任务优先级和中断优先级冲突

如果一个中断比当前运行的任务的优先级更高,那么 FreeRTOS 将立即挂起正在运行的任务,并执行中断服务程序。在 FreeRTOS 中,任务和中断处理程序都具有优先级,但是当它们同时发生时,可能会产生冲突。当多个任务同时处于就绪状态时,FreeRTOS 会根据任务的优先级来选择要运行的任务。函数来设置中断的优先级。当多个中断同时发生时,FreeRTOS 会根据中断的优先级来决定哪个中断先被服务。综上所述,FreeRTOS 通过设置任务和中断的优先级以及使用临界区来解决任务优先级和中断优先级的冲突问题。

2023-05-09 20:00:00 1371

原创 电机控制技术

在开环控制中,控制器只需要对电机通电进行简单的控制,无法对电机的实际工作状态进行监测和调整,因此容易受到外界环境和负载等因素的影响,存在控制精度低的问题。交流电机控制则是通过改变交流电源中电压、电流的频率、相位等特性来控制电机。其中,变频控制技术是一种常用的交流电机控制方式,通过对电机供电电压、频率和相位进行闭环控制,可以实现电机转速、转矩的精确调整,具有广泛的应用前景。电机控制的基本原理是通过改变电机的电源电压、电流、电磁场等因素,来改变电机的特性,进而控制电机的转速、转矩以及位置等参数。

2023-05-08 19:00:00 1186 1

原创 计算机中的存储器山

局部性是指计算机程序访问存储器时会出现时间局部性和空间局部性的特点,即被引用过的内存位置在不远的将来会被再次引用(体现时间局部性),被引用过的内存位置周围的内存位置也会在不远处被引用(体现空间局部性)。存储器山的概念最早由T. Stricker于1997年提出,其思想是把不同的存储器设备(如缓存、主存、辅存等)按照访问延迟的大小排列成一座“山”,从而反映出存储器的层次结构和访问性能。通过存储器山的分析,我们可以了解不同存储设备的访问延迟和带宽特性,从而优化程序和系统的性能。

2023-05-03 12:00:00 530

原创 c语言的库函数

常见的系统头文件包括stdio.h(标准输入输出库)、stdlib.h(标准库函数)、string.h(字符串处理函数)等。第三方头文件是指由其他开发者编写并共享的库函数,可以通过导入对应的库文件或使用包管理工具下载集成到程序中。常见的第三方库函数包括GMP(高精度数学计算库)、OpenSSL(加密库)、libcurl(网络编程库)等。C语言的库函数是指一些已经封装好的、可以直接调用的函数,用于完成一些常见的任务,包括字符串处理、数学计算、输入输出等。C语言标准库分为两种类型:系统头文件和第三方头文件。

2023-05-02 18:00:00 1082

原创 C语言的stdio.h文件

stdio.h是C语言中的标准头文件之一,其名称全称为Standard Input and Output Header,即标准输入输出头文件。它提供了一系列输入输出函数,用于程序的输入输出操作。”到标准输出设备中。由于已经引入了stdio.h头文件,因此程序可以直接调用相关的输入输出函数。其中EOF表示文件结尾,stdin表示标准输入设备,stdout表示标准输出设备。这些函数在C语言中广泛使用,可以方便地进行文件和字符串的输入输出操作,也是很多库函数和系统函数的基础。

2023-05-01 18:30:00 4305

原创 C语言的scanf函数

其中,format是格式控制字符串,决定了待读取数据的类型和格式,也就是所谓的“格式化输入”。...表示可变参数,对应的是format中指定的各个参数,每个参数用逗号隔开。在这个例子中,程序提示用户依次输入年龄、身高和名字,然后使用scanf函数从标准输入中读取输入数据,并按照指定的格式进行转换。如果读取失败(例如遇到文件结尾EOF或者输入格式不符),则返回0或EOF(-1)。scanf是C语言中的一个标准函数,用于从标准输入流(通常是键盘)读取输入数据,并根据指定的格式转换为对应的数据类型。

2023-04-29 21:30:00 85

原创 C语言的printf函数

其中,format是格式控制字符串,决定了输出数据的类型和格式,也就是所谓的“格式化输出”。...表示可变参数,对应的是format中指定的各个参数,每个参数用逗号隔开。在这个例子中,程序定义了三个变量:age、height、name,分别表示年龄、身高和名字。然后使用printf函数将这些信息进行格式化输出。printf是C语言中的一个标准函数,用于将格式化的输出写入到标准输出设备(通常是显示器)中。printf函数的返回值为输出的字符个数,不包括终止符。如果输出失败,则返回负值。

2023-04-28 21:15:00 1076

原创 C语言的fgets函数

在这个例子中,程序打开文件file.txt,使用fgets函数从中读取一行字符串(不超过MAXLINE-1个字符),然后输出读取到的字符串。最后,程序关闭文件并结束。如果读取成功,则返回一个指向str的指针,否则返回NULL。另外,fgets会将读取到的字符串缓存到str中,并自动在末尾添加一个终止符'\0'。其中,str是一个字符数组,用来存储读取的字符串;n表示读取的最大字符数(包括换行符和终止符);stream表示要读取的文件流。fgets是C语言中的一个标准库函数,用于从指定文件中读取一行字符串。

2023-04-24 21:30:00 1966

原创 嵌入式软件架构设计接口规范

图表类接口:该种接口规范用于实现数据的可视化。例如,在智能家居系统中,可以使用图表类接口将温度、湿度、光照等传感器数据以图表形式呈现,方便用户查看。创建类接口:该种接口规范用于创建新的对象,如创建一个新的线程、创建一个新的设备驱动程序等。查询类接口:该种接口规范用于查询已有对象的信息,如查询系统的网络配置信息、查询设备状态等。文件类接口:该种接口规范用于访问嵌入式系统中的文件系统,如读取、写入、删除文件等。敏感类接口:该种接口规范用于管理嵌入式系统中的敏感信息,如用户密码、密钥等。

2023-04-19 21:30:00 586

原创 嵌入式软件架构设计模块划分

模块化、松耦合模块划分:将整个系统划分为若干个互不依赖、高度独立的模块,每个模块都有清晰的接口,不同的模块之间通过接口进行通信。功能模块划分:将收集到的需求进行归类、总结和分析,将这些需求概括为一个个单独的功能,每个功能做成一个单独的功能模块。状态机模块划分:将软件系统中所有的功能和状态都看作一个个状态机,一个状态机表示具体的功能或状态。分层模块划分:将软件系统按照逻辑上的不同层次分为不同的模块。不同的模块划分方法有着自己的特点和适用范围,根据具体情况选择合适的模块划分方法可以使整个软件系统更加优秀。

2023-04-18 22:45:00 733

原创 UDS ISO 14229协议

每个层次都具有一定的功能和目的,以实现完全的通信。UDS支持的诊断服务包括读故障码(Diagnostic Trouble Code, DTC)、读取数据流(Data Stream)、编写数据(Write Data)等,并且在OBD-II标准的基础上增加了更多的诊断服务和功能,具备更高的灵活性和扩展性。对于UDS协议的使用,需要具备相关的技术知识和理解,包括网络编程、编解码方式、故障码解析、数据流处理等。总之,UDS协议作为一种通用的汽车诊断协议,已经在汽车领域得到广泛应用,具备重要的意义和价值。

2023-04-17 22:00:00 660

原创 UART协议

该例程实现了UART通信的配置函数uart_config()、发送函数uart_sendByte()和接收函数uart_receiveByte()。在使用此例程时,仅需调用uart_config()函数进行UART配置,然后调用uart_sendByte()函数就可以向外部设备发送数据,使用uart_receiveByte()函数就可以从外部设备接收数据。这是一个简单的UART例程,针对不同的具体场景和需求,还需要进行更加详细的配置和调试,确保UART通信的稳定和可靠。

2023-04-12 23:00:00 320

原创 嵌入式软件架构设计协议定义

协议定义规定了通信双方之间的消息格式以及通信方式,保证了系统之间的可靠性、安全性和互操作性。根据具体的场景和需求,可以选择合适的协议定义进行通信。MQTT协议:MQTT是一种基于发布/订阅模式的消息协议,适用于支持互联网的嵌入式系统。UART协议:UART是一种简单的串行通信协议,适用于低速、短距离的通信。CAN协议:CAN是一种面向车辆电子控制领域的网络通信协议,适用于长距离、高速数据传输。SPI协议:SPI是一种高速的串行通信协议,适用于短距离、高速数据传输。SPI协议需要使用至少4个引脚进行通信。

2023-04-11 22:00:00 124

原创 堆栈的定义和用途

这个例程中,我们定义了一个结构体 Stack 表示堆栈,它包含一个数组 data 和一个整型变量 top,表示堆栈的元素和栈顶位置。堆栈的数据结构和算法堆栈(stack)是一种常用的数据结构,常用于需要先进后出(Last In First Out,LIFO)操作的场合。应用程序:堆栈被用来存储程序的执行过程中的状态信息,例如Android中的任务堆栈就是用来管理Activity的,帮助多任务处理。编译器:堆栈被用来实现表达式的计算和语句的执行,以及控制程序的流程等。

2023-04-10 23:00:00 3924

原创 嵌入式软件架构设计

智能家居系统的软件架构一般由以下组件构成:操作系统:嵌入式系统可以选择不同的操作系统,如嵌入式Linux、FreeRTOS等。智能家居系统通常需要实时性高、响应速度快的特点,因此可以选择实时操作系统。应用程序:智能家居应用程序是系统的核心功能模块,包括温度、湿度、光照等传感器采集模块,语音识别、图像识别等智能控制模块,以及与用户交互的人机界面模块等。驱动程序:嵌入式系统中的硬件外设需要编写相应的驱动程序,以实现对硬件设备的控制和数据读取。

2023-04-05 22:00:00 2406

原创 指针、空指针、野指针

因为 C++ 中指针默认不被初始化,所以该指针变量指向一个随机的内存地址,这时我们把值 10 赋给该地址,但是这个地址可能已经被其他程序占用,因此程序运行时会产生 segmentation fault 或者其他错误,导致程序崩溃。还有一种情况是在函数中定义一个指向局部变量的指针,当函数返回后,这个局部变量就被销毁了,但指针依然指向该内存区域,继续使用这个指针就会产生野指针。与空指针不同的是,野指针所指向的内存区域很可能被其他程序或者系统占用,因此访问它时可能会得到错误的结果,导致程序崩溃甚至数据丢失。

2023-04-05 21:00:00 623

原创 内存泄露介绍

内存泄漏指的是程序中已动态分配的内存没有及时释放,导致内存空间始终被占用而无法再次使用,最终会导致系统的内存资源浪费以及程序运行变慢或崩溃等问题。总之,及时发现和解决内存泄漏问题对于程序的正常运行和高效性都是非常重要的。使用 RAII 等资源获取即初始化技术,将资源的获取和释放操作封装在同一个对象中,避免显式调用释放函数时遗漏的情况;在堆上分配内存时注意申请和释放内存的一一对应,确保每次分配内存后都能正确地执行相应的释放操作;使用智能指针等工具来管理内存,防止手动内存管理时出现内存泄漏问题;

2023-04-04 22:00:00 59

原创 内存管理介绍

常见的内存分配方式有如下几种:(1)连续内存分配:将可用内存划分为一段一段的连续空间,每个进程占用一段连续的内存空间。需要注意的是,在使用动态内存分配和释放时,需要谨慎处理内存泄漏和指针悬挂等问题,以避免出现程序非正常退出、崩溃等情况。1.内存的基础知识内存是计算机中用于存储和读写数据的硬件设备,它可以存储程序代码、数据、运行时产生的临时数据和内核数据等。如果内存分配失败,则打印分配失败的信息并退出程序。需要注意的是,在多进程或多线程的环境下,内存管理需要考虑同步和互斥等问题,以保证数据的一致性和安全性。

2023-04-04 21:15:00 695

原创 FreeRTOS的任务堆栈

FreeRTOS中的堆栈是从操作系统分配的堆中分配的,不同任务的堆栈不会相互干扰,因此任务之间的数据是隔离的。当创建一个新任务时,FreeRTOS会自动分配一块足够大的空间作为该任务的堆栈,并将其地址存储在任务控制块(TCB)中。堆栈的大小是通过xTaskCreate()函数的参数指定的,通常情况下需要根据任务所需的局部变量的大小及递归调用深度来合理设置。需要注意的是,堆栈大小应根据任务的实际需求进行设置,过小的堆栈容易引起栈溢出问题,过大的堆栈则会占用不必要的内存空间。FreeRTOS的任务堆栈。

2023-04-03 22:00:00 2711

原创 FreeRTOS的互斥量

例如,创建一个互斥量可以使用函数xSemaphoreCreateMutex(),获取互斥量可以使用函数xSemaphoreTake(),释放互斥量可以使用函数xSemaphoreGive()。由于互斥量的特性,同一时刻只有一个任务能够获得该互斥量,从而保证了对临界资源的独占式访问。支持防止优先级翻转:当一个低优先级任务持有互斥量时,高优先级任务不能获取该互斥量,从而避免了优先级翻转的问题。支持互斥量所有权:一个任务可以持有一个互斥量并防止其他任务获取它,只有持有互斥量的任务才能访问临界资源。

2023-04-03 21:00:00 358

原创 freeRTOS消息队列

要使用消息队列,首先需要创建一个队列句柄,这可以使用xQueueCreate()函数完成。发送消息时,我们使用xQueueSend()函数,该函数接受三个参数:队列句柄,指向要发送数据的指针以及等待数据可用的时间(如果队列已满)。要从队列中收取消息,请使用xQueueReceive()函数,它也接受三个参数:队列句柄、指向接收数据的指针以及等待数据的时间(如果队列为空)。总之,FreeRTOS消息队列是一种非常有用的方式,用于在任务之间传递数据,而不需要使用全局变量或其他同步机制。

2023-04-02 22:00:00 683

原创 freeRTOS任务延迟

vTaskDelay()函数采用一个以Tick为单位的参数,表示要延迟的时间。如果调用vTaskDelay(1000)函数,则当前任务将被挂起1秒钟(假设系统Tick率为1kHz)。在这个例子中,我们创建了一个名为task的任务,它会执行一些操作,并在每次操作之间延迟500毫秒。我们使用pdMS_TO_TICKS()宏将毫秒转换为以Tick为单位的时间。在FreeRTOS中,任务延迟是通过vTaskDelay()函数实现的。该函数会挂起当前任务一段时间,并将控制权交给另一个任务。

2023-04-02 21:00:00 683

原创 freeRTOS任务挂起和恢复

在任务挂起期间,该任务所占用的CPU处理时间将被释放,以便其他任务能够获得更多的CPU时间。因此,在实际应用中,可以通过挂起一些低优先级的任务来让高优先级的任务优先执行,以提高系统的响应速度。类似地,FreeRTOS也提供了vTaskResume()函数来恢复一个被挂起的任务,该函数也接受一个参数,即要恢复的任务的句柄。FreeRTOS提供了vTaskSuspend()函数来挂起一个任务,该函数接受一个参数,即要挂起的任务的句柄。任务挂起指暂停一个任务的执行,任务恢复则是使一个被挂起的任务继续执行。

2023-04-01 22:00:00 542

原创 freeRTOS任务死锁

在这个示例代码中,Task1和Task2都需要同时获取ResourceA和ResourceB,但是它们以不同的顺序尝试获取这两个资源,这可能会导致死锁。每个任务都需要同时访问这两个资源才能完成它们的工作。当发生任务死锁时,系统将永远无法正常运行,因为任务在等待其它任务释放资源,而该其它任务却也在等待某个资源,从而使得整个系统陷入僵局。在该示例中,Task1和Task2在尝试获取两个资源时都会等待一定时间,如果在这段时间内无法成功获取两个资源,则会放弃当前的获取尝试并重新开始。freeRTOS任务死锁。

2023-04-01 21:30:00 2048

原创 freeRTOS任务优先级反转

在嵌套中断模式下,如果一个高优先级任务被阻塞在一个低优先级任务上,那么操作系统会自动将低优先级任务的优先级提高到与高优先级任务相同,以确保高优先级任务可以及时运行。在优先级继承中,当一个高优先级的任务需要获取一个由低优先级任务持有的共享资源时,它会临时提升该低优先级任务的优先级,以便允许该低优先级任务快速释放该资源。在修改后的代码中,当任务1获取共享资源时,会使用 vTaskPrioritySet() 函数将任务2的优先级提升到与任务1相同,然后在释放共享资源后恢复任务2的原始优先级。

2023-03-31 08:15:00 1426

原创 freeRTOS任务优先级

在FreeRTOS中,任务的优先级是用数字表示的,数字越大,优先级越高。由于TaskB的优先级比TaskA高,因此在系统中运行TaskB时,它将抢占TaskA,直到TaskB完成或被阻塞为止。需要注意的是,在任务编写时应该遵循良好的编程实践,如避免任务优先级反转、使用适当的同步机制等,以确保系统的稳定性和可靠性。TaskA的优先级为1,而TaskB的优先级为2。需要注意的是,在设计多任务应用程序时,必须非常小心地选择和使用任务的优先级,否则可能会导致一些问题,如优先级反转、死锁等。

2023-03-31 07:45:00 2042

原创 freeRTOS任务创建和删除

FreeRTOS 中任务的创建和删除使用 xTaskCreate 和 vTaskDelete 函数。

2023-03-30 18:45:00 482

原创 freeRTOS的任务管理

接着在 setup 函数中,我们初始化串口、创建任务1和任务2,并启动 FreeRTOS 调度器。任务创建和删除:可以使用API函数vTaskCreate()来创建新任务,并使用vTaskDelete()函数删除现有任务。当程序运行时,FreeRTOS 将会轮流执行任务1和任务2。每个任务都是独立运行的,因此任务1和任务2可以同时运行。任务挂起和恢复:可以使用vTaskSuspend()和vTaskResume()函数来暂停和恢复任务的执行。任务优先级:每个任务都有自己的优先级,可以在创建任务时指定。

2023-03-30 18:30:00 235

原创 freeRTOS的信号量

在这个例子中,vTask1和vTask2任务都需要互斥地访问共享资源,因此我们创建了一个二进制信号量xSemaphore,并在每个任务中使用xSemaphoreTake()和xSemaphoreGive()函数请求和释放信号量。信号量是一个计数器,用于跟踪可用资源的数量。首先,在任务创建时创建信号量,然后可以使用xSemaphoreGive()和xSemaphoreTake()函数请求和释放信号量。计数信号量则可以跟踪多个资源的数量。FreeRTOS提供了两种类型的信号量:二进制信号量和计数信号量。

2023-03-29 22:00:00 241

原创 freeRTOS的任务调度器

在此示例中,我们定义了两个任务task1和task2,每个任务都包含自己的代码并使用vTaskDelay函数来延迟其执行。当一个任务等待某些事件发生时,例如等待一个信号量或等待某个定时器到期,它将被暂停,并让其他任务继续运行,从而充分利用系统资源。这只是FreeRTOS任务调度器的一个简单例子,但它可以帮助您理解如何编写和组织任务以及如何使用任务调度器来将它们组合在一起。总体而言,FreeRTOS的任务调度器提供了一种强大而灵活的机制,使嵌入式系统能够有效地处理并发任务,并满足实时要求。

2023-03-29 21:30:00 239

原创 SPI从模式切换为主模式

需要注意的是,在Arduino代码中还需要实现对从设备的选择,即在开始传输数据前需要将从设备的片选引脚拉低以选中该设备。此时,从设备可以从SPDR(SPI数据寄存器)中读取数据,并以响应的方式向主设备发送数据。在SPI总线上,要将从设备转换为主设备或者将主设备转换为从设备,需要通过改变SPI控制寄存器的配置来实现。首先需要配置从设备的SPI控制寄存器。具体而言,需要将从设备的SPI控制寄存器中的MSTR(主从选择)位设置为1,表示主设备。当主设备检测到从设备的片选信号拉低时,就会开始向从设备发送数据。

2023-03-28 08:30:00 468

原创 SPI主模式切换为从模式

需要注意的是,如果SPI总线上同时存在多个从设备,则需要在主设备中显式地选择需要与之通信的从设备。在选择从设备时,需要将其从设备片选信号拉低,让其他从设备处于非选中状态。从设备连接到Arduino的SPI总线上,并且已经将从设备的SPI控制寄存器配置为从模式。在SPI总线上,要将主设备转换为从设备或者将从设备转换为主设备,需要通过改变SPI控制寄存器的配置来实现。接着,在从设备上等待主设备开始传输数据。具体而言,需要将从设备的SPI控制寄存器中的MSTR(主从选择)位设置为0,表示从设备。

2023-03-28 08:00:00 1320

毕业班第1课第1.2节-自己写bootloader之编写第2阶段.WMV

毕业班第1课第1.2节_自己写bootloader之编写第2阶段.WMV

2023-05-09

毕业班第1课第1.1节-自己写bootloader之编写第1阶段.WMV

毕业班第1课第1.1节_自己写bootloader之编写第1阶段.WMV

2023-05-09

MATLAB-Simulink的系统仿真技术与应用.rar

[MATLAB-Simulink的系统仿真技术与应用.rar

2023-05-08

第3课第3.2-5节 串口控制WIFI小车效果演示.WMV

第3课第3.2_5节 串口控制WIFI小车效果演示.WMV

2023-05-08

第3课第3.2-4节 驱动开发之串口控制WIFI小车.WMV

第3课第3.2_4节 驱动开发之串口控制WIFI小车.WMV

2023-05-08

第3课第3.2-3节 驱动开发之libncurses简单应用.WMV

第3课第3.2_3节 驱动开发之libncurses简单应用.WMV

2023-05-08

第3课第3.2-1节 驱动开发之电机、蜂鸣器硬件原理.WMV

第3课第3.2_1节 驱动开发之电机、蜂鸣器硬件原理.WMV

2023-05-08

第3课第3.1-2节 驱动开发之Hello World.WMV

第3课第3.1_2节 驱动开发之Hello World.WMV

2023-05-08

第3课第3.1-1节 驱动开发之准备工作.WMV

第3课第3.1_1节 驱动开发之准备工作.WMV

2023-05-08

第3课 驱动开发.zip

第3课 驱动开发.zip

2023-05-08

第2课第2.3节 工作于AP、STA模式.WMV

第2课第2.3节 工作于AP、STA模式.WMV

2023-05-05

第2课第2.1-2节 openWRT初体验-下载配置编译烧写.WMV

第2课第2.1_2节 openWRT初体验_下载配置编译烧写.WMV

2023-05-05

第2课第2.1-1节 openWRT初体验-openWRT介绍.WMV

第2课第2.1_1节 openWRT初体验_openWRT介绍.WMV

2023-05-05

第2课 openWRT.zip

第2课 openWRT.zip

2023-05-05

Z20K11xM-SDK-Release-RTM-V1.7.zip

Z20K11xM_SDK_Release_RTM_V1.7.zip

2023-04-26

Z20K11xM-SDK-Release-RTM-V1.6.0.rar

Z20K11xM_SDK_Release_RTM_V1.6.0.rar

2023-04-26

Z20K116M-PinMux-V02C(1).xls

Z20K116M_PinMux_V02C(1).xls

2023-04-26

Z20K118M-PinMux-V02C(1).xls

Z20K118M_PinMux_V02C(1).xls

2023-04-26

Z20K11xM-Reference-Manual-RTM1.4.pdf

Z20K11xM_Reference_Manual_RTM1.4.pdf

2023-04-26

VSCodeUserSetup-x64-1.63.2.rar

VSCodeUserSetup-x64-1.63.2.rar

2023-04-26

VectorCAST使用手册.rar

VectorCAST使用手册.rar

2023-04-26

vcast.win64.2021sp3HeT.rar

vcast.win64.2021sp3HeT.rar

2023-04-26

vcast.win64.2021sp3.zip

vcast.win64.2021sp3.zip

2023-04-25

使用VectorCAST工具部署Unit test CI环境指导文档.docx

使用VectorCAST工具部署Unit test CI环境指导文档.docx

2023-04-18

GPI-SW-SUV-GUI-01 VectorCAST-C++ GUIDE.docx

GPI-SW-SUV-GUI-01 VectorCAST-C++ GUIDE.docx

2023-04-18

JLink-Windows-V760e-x86-64.exe

JLink-Windows-V760e-x86-64.exe

2023-04-11

VectorCAST License安装手册.pdf

VectorCAST License安装手册.pdf

2023-04-11

Vector单元测试视频教程

Vector单元测试视频教程

2023-04-11

Vector环境配置视频教程

Vector环境配置视频教程

2023-04-11

Trinity Technologies-Training-VCAST-2021.pptx

Trinity Technologies-Training-VCAST-2021.pptx

2023-04-11

Vector-Code Test-Solution.pdf

Vector-Code Test-Solution.pdf

2023-04-11

VectorCAST-竞品对比-2.pdf

VectorCAST-竞品对比-2.pdf

2023-04-11

VectorCAST使用手册-Windows.pdf

VectorCAST使用手册-Windows.pdf

2023-04-11

PM0215_STM32F0xxx单片机编程手册

PM0215_STM32F0xxx单片机编程手册PM0215_STM32F0xxx单片机编程手册

2022-09-14

PM0059_STM32F205_215, STM32F207_217单片机编程手册

PM0059_STM32F205_215, STM32F207_217单片机编程手册PM0059_STM32F205_215, STM32F207_217单片机编程手册PM0059_STM32F205_215, STM32F207_217单片机编程手册PM0059_STM32F205_215, STM32F207_217单片机编程手册PM0059_STM32F205_215, STM32F207_217单片机编程手册PM0059_STM32F205_215, STM32F207_217单片机编程手册PM0059_STM32F205_215, STM32F207_217单片机编程手册PM0059_STM32F205_215, STM32F207_217单片机编程手册PM0059_STM32F205_215, STM32F207_217单片机编程手册PM0059_STM32F205_215, STM32F207_217单片机编程手册PM0059_STM32F205_215, STM32F207_217单片机编程手册PM0059_STM32F205_215, STM32F207_217单片机

2022-09-14

STM32F1 EMWIN开发手册_V2.0.zip

STM32F1 EMWIN开发手册_V2.0.zip

2021-10-09

【连载帖】深入理解和实现RTOS.zip

【连载帖】深入理解和实现RTOS.zip

2021-10-09

(十一)--查找嵌入式软件技术的缺陷.pdf

(十一)--查找嵌入式软件技术的缺陷.pdf

2021-10-09

(十)--ARM设计思想与高效C编程.pdf

(十)--ARM设计思想与高效C编程.pdf

2021-10-09

(九)--用C语言实现高效嵌入式系统编程.pdf

(九)--用C语言实现高效嵌入式系统编程.pdf

2021-10-09

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除