• 调整Apache mod_cgi模块超时

    我目前正在为Linux的Apache 2.2编写CGI应用程序(作为已编译的C程序)。应用程序将访问串行端口,以使用微控制器连接到自定义电路以执行各种I / O。 该应用程序只能由连接的计算机上的一个用户访问(我将限制IP访问)。我这样做是出于可移植性,因为不再创建串行端口,但是计算机现在可以通过wifi路由器连接到旧计算机。 我关心的一件事是故障排除。如果偶然,我的应用程序挂起(由于串行端口temios设置不正确),则该应用程序将要永久挂起,而令人欣慰的是CGI接口杀死了该应用程序,并返回了504网关超时...
  • 重新定义PIC24的寄存器掩码以提高可读性是不好的做法吗?

    我对使用PIC芯片还比较陌生,所以这可能是一个新手级别的问题,但是我试图编写一个头文件,其中包括所有I / O端口的TRIS / ODC / INIT掩码。在此芯片内置的PCB上,任何给定的组件都可能使用来自多个端口的引脚,并且大概有十几个单独的组件需要详细注释。例如,与特定的SPI ADC模块接口使用的是端口A,D和F的引脚。对我来说,似乎方便读者的书写方式是按组件组织文件,以便一目了然,读者可以知道正在使用哪些引脚,将它们配置为输入还是输出以及如何对其进行初始化。例如,仅显示TRIS掩码信息,以下是我正...
  • 如何在使用C宏进行编译时避免MCU外设冲突?

    为MCU编写程序时,诸如GPIO,定时器通道之类的外设可能会发生冲突。在编译或链接时是否可以按以下形式编写宏以进行判断? USED(GPIOA_15) USED(TIMER1_CH3) USED(GPIOA_15) // Error or warning should occur here 如果判断是在合并时发生的,则只能在same.c文件中找到冲突。因此,最好是宏在链接时起作用,以便可以检查多个源文件的资源冲突。
  • 通过中断保护读取值

    我熟悉比赛条件和著名的counter ++示例。 我的问题不是关于读写保护,而是关于读取保护。 是否可以通过中断读取损坏的值?万一另一个中断/主代码正处于更改其值的过程中? 我需要保护易失性组件的内容吗? 我正在使用C和ARM微控制器。 此外,如果只有一项任务正在对某个变量进行读写操作,而所有其他任务仅在进行读取操作,我是否需要保护它?
  • 对一组长度不是2的幂的数字求平均的最快方法?

    用C编程,这是针对微控制器应用程序的,所以我在这里真的很在意计算效率。 我有一个16位有符号整数,来自16 kHz以北的ADC。每勾,我就会得到16个数字。其中,我需要平均两个不同的6组,所以最终输出是6个数字组。因此,我的特定于应用程序的问题是如何以最小的计算开销平均六个数字? 我知道,使用一组长度为2的幂的数字,我可以在加法运算之后使用移位进行除法。既然我有6个数字,什么是最好的方法?
  • 简单UDP服务器/客户端的异常行为。 UDP大约10秒后停止

    应该是一个简单的程序使我头痛了一个星期。我有两个Arduino WiFi Rev 2开发板。一个是服务器,它使用密码创建一个称为“ MyAP”的访问点。另一个是连接到接入点的客户端。至此为止: 如您所见,左侧的客户端成功向服务器发送了“ 1”。但是,它会在约5秒钟后停止。我进行了一些调试,可以看到正在发送UDP数据包。我还运行了一个脚本,如果WiFi强度等于“ 0”,则该脚本实际上将“重新连接”,并成功重新连接到该脚本。问题出在IP地址的某个地方。我相信它会以某种方式忘记服务器的IP地址。这是客户端/服务...
  • PJRC代表什么?

    I noticed the site https://www.pjrc.com has a lot of good resources on working with electronics, and in particular for my use-case on how to program microcontrollers. PJRC代表什么?
  • 是否可以优化此嵌套循环?

    我正在一个项目中,我想将给定的视频输入流转换为块部分(以便可以由硬件编解码器使用)。该项目在运行200Mhz时钟的STM32微控制器上运行。 收到的输入是YCbCr 4:2:2渐进流,这基本上意味着每行的输入流如下所示: Size: 32 bit word 32 bit word 32 bit word ... Component: Cr Y1 Cb Y0 Cr Y1 Cb Y0 Cr Y1 Cb Y0 ... Bits: 8 8 8 8 ...
  • void *(*)()和void *有什么区别?

    在我的一个程序中,我遇到了错误 invalid conversion from 'void* (*)()' to 'void*' [-fpermissive] 我试图了解这两种数据类型之间的区别。这很令人困惑。 What I think that these data types are: void* (*)() So this data type is a pointer to a void (void*) which also has another pointer ((*)), and for so...
  • C#与微控制器的串行通讯问题

    我在与Visual Studio C#环境中的嵌入式设备进行串行通信时遇到问题,当前的解决方案是使用以下配置与腻子会话进行通信: 波特> 9600 数据位> 8 停止位> 1 平价>无 流量控制> RTS / CTS 每次建立连接时,在腻子终端上都​​会显示一个菜单,其中显示了控制器的可用命令。 我尝试了以下从MS示例中借用的内容: public class PortChat { static bool _continue; static SerialPort _serialPort...
  • 每个中断都需要自己的功能吗?

    我目前正在计划一个项目,其中包括多个旋转编码器,我想将这些编码器连接起来以中断引脚,以可靠地从它们获取输入。 我希望每个编码器都做基本相同的事情,但是取决于转动哪个编码器,代码中的某些变量将必须更改。 我是否必须为其中每个编写单独的函数?不可能从attachInterrupt传递一个参数(在这种情况下为中断引脚号)给被调用的函数,除了写5个函数(rotary1()rotary2()...),我真的看不到其他可行的选择。 )包含完全相同的代码,但更改了一些变量。 我想到的另一种选择是调用“中间”功能,该功能检...
  • 当您写入具有相同配置的寄存器时会发生什么?

    我正在使用STM32L432KC,并且对嵌入式世界来说还比较陌生。如果我写入配置寄存器,等待一段时间,然后再次使用相同的配置写入寄存器,会发生什么情况。这有什么影响吗? 作为参考,我使用的是STM32L432KC微控制器。有问题的寄存器是复位和时钟控制(RCC),AHB2外设时钟使能寄存器(RCC_AHB2ENR)。我有一个功能,可以通过进行“或”运算来启用GPIO端口的时钟。我想知道在引脚处于活动状态时调用该函数是否会产生任何效果。
  • 我如何通过脚本自动将可执行文件发送到微控制器

    当我单击开始按钮后,我需要创建一个图形应用程序,该应用程序允许恢复包含源代码的文件。 它会自动编译该文件并在微控制器上运行。 我不知道要制作这样的应用程序需要使用哪种编程语言?以及要执行的步骤。 知道我必须加载的文件在C中,而我使用的微控制器是Aurix TC277
公告

欢迎访问 码农俱乐部  点击这里设置您的邮箱  可以接收站内跟帖、回复邮件提醒,不错过任何一条消息。

关注公众号订阅更多技术干货! 码农俱乐部