microcontroller相关内容

当两个变量之间可能发生中断时,可以安全地访问它们

首先,我欢迎对这个问题的标题进行编辑,我想不出如何更好地措辞,但是我对自己的想法并不满意. 这是一个关于并发性的问题,我的应用程序是用C语言编写的微控制器,但是我认为这没什么大不了的. 我有一个中断例程,可以更改两个全局变量的值.我有一些可以读取这些变量的主要代码.但是它必须从两个值中获取一致的值,这意味着我无法读取一个值然后再读取另一个值,因为可能会在两者之间发生中断并同时更改它们, ..
发布时间:2020-05-09 19:47:07 其他开发

PIC单片机:仅使用C中的端口C RC0-RC3扫描4x4键盘上的输入

我是PIC微控制器&的新手. C语言编程,我的任务是创建自己的键盘扫描方法,该方法专用于端口C(16F877A微控制器).具体来说,使用此方法的程序仅使用数字1、2、4和5,因此为了高效,扫描仪方法仅将RC0,RC1,RC2和RC3用作指定的输入/输出(不允许使用使用RC4-RC7).这实际上将4x4键盘变成了2x2键盘. 我了解扫描的概念是将端口行设置为高行,并将行设置为输入列-当按下按钮 ..
发布时间:2020-05-09 19:47:03 其他开发

dsPic33E:RS485通信问题

在通过RS485端口进行串行通信时,我遇到了问题. 我正在将dsPic33E微控制器与Max485配合使用. 我使用断点分析说,每当我向控制器发送"0x00" 时,都会收到"0xFF" .然后我发送了"0x01" ,在控制器上收到了"0xFD" ,依此类推. 我也尝试使用环回逻辑,这意味着发送回接收到的字符,但是每次收到任何发送的值时,"0x00" . 我无法解决问题.下面 ..
发布时间:2020-05-09 19:46:59 其他开发

在FT232RL上使用libftdi之后,恢复虚拟Com端口

我正在尝试使用libftdi切换ft232rl上的某些引脚,然后使用常规的虚拟Com端口(/dev/ttyUSB0).我已经将一个微控制器(LPC1114)连接到FT232RL进行编程.要使其进入ISP模式,必须在保持低电平的状态下将其复位,并且要在编程后执行代码,必须对其进行复位.我正在尝试使用ft232将其自动化.我有libftdi工作,并且正确切换了引脚,但是一旦程序完成,VCP就从/dev ..
发布时间:2020-05-09 19:46:56 服务器开发

ISR如何作为回调函数

维基百科条目指出: 在计算机系统编程中,中断处理程序(也称为中断服务程序或ISR)是微控制器固件,操作系统或设备驱动程序中的回调函数,其执行是通过接收中断来触发的. /p> ISR如何回调.堆栈中存储的PC值本身就是回调函数吗? 也就是说,ISR会回调被中断的函数.因此,中断的函数是回调. 解决方案 一些设置代码将ISR函数的地址存储在中断向量表中,在该地址说"给我回电"当中 ..
发布时间:2020-05-09 19:46:54 其他开发

为什么此状态机不保持其状态?

嘿,StackOverflow! 在下面的代码中,我有一个简单的状态机,可以更改某些外部照明设备的操作(如注释所示).通过按下连接到GP1的按钮可以改变状态.连接到GP1的电路是一个比较器去抖动电路,将VDD与0.6VDD进行比较(我也尝试过RC/二极管/施密特触发电路),然后强制信号LO.在示波器上,当快速按下按钮时,我们会看到干净的方波. PIC10F200 的当前(和不受欢迎的) ..
发布时间:2020-05-09 19:46:51 其他开发

使用Windows(XP +)API发送(串行)中断

是否有比setcommbreak-delay-clearcommbreak序列发送串行中断更好的方法? 我必须与使用串行中断作为115k2上的数据包开头的微控制器进行通信,而setcommbreak有两个问题: 的115k2间隔远低于1ms,它将对时序至关重要. 由于中断必须在正确的位置嵌入到数据包流中,因此我希望使用fifo会遇到麻烦. 在没有将串行通信移到没有fifo的 ..
发布时间:2020-05-09 19:46:48 其他开发

在Android中识别DTMF音

我打算在android中创建一个centerx系统应用.接收方将在其中设置语音邮件.根据语音邮件中的指示,呼叫者必须按拨号盘中的号码,接收方应识别该号码并执行相应的操作.有谁知道如何检测接收方呼叫者按的号码吗?, 它背后的技术是什么?, 在Android中可以吗? 任何帮助都是有意义的. 解决方案 有人知道如何检测接收方呼叫者所按的号码吗? 您需要一个DTMF​​检测器/解 ..
发布时间:2020-05-09 19:46:46 移动开发

初学者:AVR C ++ Atmel Studio 6

在解决我可以访问哪些库时遇到问题.我知道我可以使用Atmel Studio 6 IDE在C ++中对微控制器(Atmega328p)进行编程.但是,我无法确定在哪里可以找到我可以访问的库.例如,我可以使用STL(例如矢量,双端队列...)吗?如果有人可以指出一些文档,那就太好了. 谢谢. 解决方案 Atmel Studio 6没有附带STL实现. avr-gcc附带了一些库-请查看: ..
发布时间:2020-05-09 19:46:26 其他开发

C:typedef联合

在相关问题中找不到任何内容.很有可能是超级菜鸟,但无论如何我都会问/我的.h文件中包含以下内容: typedef union _API_Packet_0x90{ uint8_t packet[26]; struct _pack_struct { uint8_t start; uint8_t length[2]; uint8_t ..
发布时间:2020-05-09 19:46:23 其他开发

AVR XYZ寄存器

AVR微控制器中的Beatwean X,Y和Z寄存器有什么区别?它们各自适合C编译器做什么?编译器在哪里存储堆指针,堆栈指针,帧指针?该寄存器具有相同的功能还是在不同的空间(例如EEPROM,RAM)中提供寻址. 解决方案 X Y和Z寄存器实际上是r27:r26,r29:r28和r31:r30寄存器对.它们每个都可用作指向SRAM的间接指针: ld r16, X 后递增或前递减: ..
发布时间:2020-05-09 19:46:20 其他开发

UART至Qt软件错误-为什么数据总是分裂?

我很想在我的Qt应用程序上显示通过UART接收到的数据. 我一次从微控制器发送了所有数据,但是我的qt应用程序却分成多个部分接收它,为什么? 这就是我得到的: http://imgur.com/kLXRvU5 代替: http://imgur.com/h2yNZjl 因此,每次我接收数据时,都会调用我的插槽函数,因此会调用“接收到的数据".但是我的数据分为两部分.为什么要这样? ..
发布时间:2020-05-09 19:46:17 C/C++开发

NAND闪存编程:写入的粒度?

有人知道现在的大型NAND闪存芯片具有写访问权限吗? 写入的最小粒度是多少?我这里有一个微控制器闪光灯 至少需要馈送1个字,最多4个字(即16位字) 立即写入状态机.我认为大(> 1 Gbit)闪烁 由于写入性能原因,此处的行为有所不同. slarti 解决方案 要清楚,要写入1位,您必须清除整个内存块,要写入0位,您只需要写入一个内存位置.您是在说一次写入(本质上是将某些位从1更改 ..
发布时间:2020-05-09 19:46:14 其他开发

PIC18上输入引脚的读取状态

当我将各种输出锁存器设置为高/低时,我已经能够使输出在我的PIC上工作,并且可以使一堆LED点亮或熄灭.但是,在固定状态下阅读时会遇到很多困难. 请参见下面的代码.我设置了配置,并将TRISC定义为输入,将TRISB定义为输出.在无限循环中,我检查RC6是高电平还是低电平,然后根据结果将整个B锁存器设置为高电平或低电平. #include __CONFIG(1, FO ..
发布时间:2020-05-09 19:46:11 其他开发

STM32F103微控制器CAN消息

我想知道是否有人熟悉任何STM32f10x微控制器? 如果是,我在配置CAN驱动程序时遇到一些问题.我可以运行设置为loop_Back模式的演示代码,但无法使Normal_Mode工作. 我通读了所有数据手册,并且所有配置都正确配置,除了CAN_MSR寄存器中的INAK从未重置为0.如果需要,我可以提供更多详细信息,但是首先我需要知道是否有人与之合作. STM32F103微控制器和CA ..
发布时间:2020-05-09 19:46:09 C/C++开发

如何使用PyUSB与USB设备交互

到目前为止,我已经到了寻找设备的阶段,现在我可以使用 libusb已安装在我的计算机上,PyUSB也已安装. import usb.core import usb.util # find our device dev = usb.core.find(idVendor=0x067b, idProduct=0x2303) # was it found? if dev is None: ..
发布时间:2020-05-09 19:46:04 Python

8位,16位,32位处理器/微控制器中整数的大小是多少?

8位,16位,32位处理器/微控制器中整数的大小是多少? 我猜这取决于内部累加器/寄存器的大小.但不确定. 谢谢 解决方案 我只知道一种定义integer数据类型的编程语言,但是很少用于8位和16位体系结构. C是用于8位,16位和32位体系结构编程的最广泛使用的语言,因此我假设您正在C的上下文中寻找答案. C中有几种“整数"数据类型:char,short,int,long等,但是我 ..
发布时间:2020-05-09 19:46:01 其他开发

为什么对于Cortex-A,重置处理程序位于0x0处,而对于Cortex-M3,则不在

Cortex-M3的初始堆栈指针值位于0x0且复位处理程序位于0x4的原因是什么?设计的依据是什么? 为什么ARM员工不能像对待Cortex-A那样将0x0留给复位处理程序,然后在复位处理程序中初始化SP? 解决方案 我认为这是“这不是bug,而是功能"的旗帜. ARM体系结构M(微控制器)配置文件与A和R配置文件具有完全不同的异常模型. A配置文件(类似于R配置文件)保留了与 ..
发布时间:2020-05-09 19:45:57 其他开发

在微控制器中将数据从内存移动到内存

为什么我们不能将数据直接从一个存储位置移动到另一个存储位置. 如果我问一个愚蠢的问题,请原谅我,但我认为这是真实的情况,至少对于我遇到的情况而言(8085,8086 n 80386) 我并不是真正在寻找一种解决方案来移动数据(例如,使用movs n all),但实际上是导致这种异常的原因. 解决方案 大多数CPU品种不允许内存到内存的移动.通常,CPU一次只能访问一个存储位置, ..
发布时间:2020-05-09 19:45:55 其他开发