
ARM学习
文章平均质量分 80
ARM学习笔记
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
kobesdu
物来则应,过去不留。
展开
-
stm32的ADC通道错乱原因分析
引脚J4.2连接电位器,发现电位器到端点时,会出现调试时中断,找不到芯片的现象。后发现是给芯片的电压高于3.3V把J4.3修改成3.3V后,又偶尔会出现通道错乱的情况。后发现是电流高于芯片单个引脚所能允许的最大电流5mA后修改成以下电路,问题解决在某些项目中,发现adc通道会相反。发现和adc初始化的位置有关系。相关代码如下MAX3485_USART_原创 2022-09-13 08:39:31 · 872 阅读 · 0 评论 -
0.39/0.5寸模拟视频及VGA视频OLED微显示屏驱动电路板及技术方案
0.39/0.5寸OLED微显示屏驱动电路采用intersil的TW8836为驱动芯片,STM32为控制芯片,实现了SONY的0.39/0.5寸微显示屏的驱动,色彩鲜艳,成像细腻。输入信号可以是CVBS模拟视频或VGA信号;输入电压为3.3-5v宽幅电压;驱动板尺寸做到28×28mm,便于光学系统设计和装配,能够满足大多数应用场景。并且具备6个I/O口和1个CMOS标准串行通信端口,可以通过按键对亮度、对比度,以及SONY 0.5寸微型显示器的亮度、对比度、显示方向及温度补偿等进行修改,同时也可以提供上原创 2021-01-27 14:39:10 · 548 阅读 · 1 评论 -
am335矩阵按键驱动的使用
矩阵按键扫描原理(即当我们按下一个矩阵键盘的按键时,如何获取按键的位置)方法有2种,一种是逐行扫描,一种是行列扫描.接下来就主要讲讲行列扫描.行列扫描的话,就是一开始让p1口高4位输出高电平,低4位输出低电平,若这4行按键里,有按键按下了,那么那一行按键对应的io的电平就会被拉低,我们就可以知道按键的行坐标.获取按键列坐标的方法也是类似的,就是一开始让p1口高4位输出低电平,低4位输出...原创 2019-08-07 13:51:05 · 561 阅读 · 0 评论 -
linux添加需要图形界面的自启服务的办法总结
首先按照一些blog中的方法,使用systemctl命令添加自启服务,但是一直失败。尤其是奇怪的是,双击相应的服务脚本可以运行VNC,但是使用启动服务指令却不能启动VNC启动vnc服务systemctl start vnc.service没反应。。。设置开机自启动systemctl enable vnc.service 也不生效。。。折腾了n天后,使用查看服务当前状态指令才发现问题...原创 2019-05-27 17:06:50 · 1400 阅读 · 0 评论 -
VNC及RFB编码格式总结
远程帧缓冲(RFB Remote Frame Buffer)协议是一个用于远程访问图形用户界面的简单协议。由于 RFB 协议工作在帧缓冲层,因此它适用于所有的窗口系统和应用程序,RFB协议是一个真正的瘦客户端协议,能够运行在大量广泛的硬件平台上。遵守 RFB 协议的 RFB 客户端是一个无状态的客户端握手通过服务器向客户端发送一个协议版本信息包开始,客户端获得服务器支持...原创 2019-05-15 16:36:25 · 2284 阅读 · 0 评论 -
vnc静态编译的方法记录t
静态编译的办法Important(1)首先要把vnc需要的库按照动态编译的流程进行静态编译,静态编译的办法是./autogen.sh ./configure --enable-unix --build=i386-linux --prefix=$PREFIX --host=$HOST --enable-static-support --cache=arm-linux.cache...原创 2019-05-14 14:56:19 · 425 阅读 · 0 评论 -
debian系统上交叉编译VNC源码
除了使用vnc常规的编译流程之外,会报其他的错误(1)报错arm-linux-c++ -DX_DISPLAY_MISSING=1 -I../../common -O2 -Wall -c TXWindow.cxxTXWindow.cxx:22:23: fatal error: X11/Xatom.h: No such file or directory修改把交叉编译好的x...原创 2019-05-14 14:55:44 · 545 阅读 · 0 评论 -
debian上源码安装vnc的全纪录
在common/zlib文件夹下命令./configure--with-installed-zlib在vncsrc的common的文件夹下面 ./configure 提示错误configure: error: installation or configuration problem: C++ compiler cannot create executables.查看...原创 2019-05-14 14:55:06 · 695 阅读 · 0 评论 -
STM32通过io模拟SPI与ADC124S021通信
/***************************** U11 *********************************/ //extern unsigned int ad_val;unsigned char ch_temp; #define AD_FF 1#define AD_ZF 2#define A...原创 2018-07-28 17:47:49 · 3055 阅读 · 2 评论 -
STM32与测温芯片ADT7410通过模拟SPI通信
#include "stm32f10x_gpio.h"#define GPIO_PORT_I2C GPIOC/* GPIO端口 */#define RCC_I2C_PORT RCC_APB2Periph_GPIOC/* GPIO端口时钟 */#define I2C_SCL_PIN GPIO_Pin_0 /* 连接到SCL时钟线的GPIO */#define I2C_SDA_PIN ...原创 2018-07-28 17:47:39 · 770 阅读 · 0 评论 -
字符叠加芯片90092的配置
void init_ic(unsigned char bc){ unsigned char i,j; MB90092_SPI_SendData(0x98); /*--------command 3----------*/ //没填充FIL位 MB90092_SPI_SendData(0); /*FIL 位,此命令可以不...原创 2018-07-28 17:47:17 · 1845 阅读 · 4 评论 -
按键弹起、按下的事件
Returnreturn表示从被调函数返回到主调函数继续执行,返回时可 附带一个返回值,返回值可以是一个常量,变量,或是表达式。 //按键按下事件void keyPress(void){ //低电平标示按键按下 if(KEY1== 0) { //按键去抖 ...原创 2018-07-28 17:47:08 · 5056 阅读 · 0 评论 -
关于STM32的编码器计数及溢出处理调试总结
错误1、pc6 pc7被用作其他用途,GPIO模式配置错误。导致计数不准确;错误2、引脚模式设置错误,应该设置为GPIO_Mode_IPD;//GPIO_Mode_IPU GPIO_Mode_IN_FLOATING 都可以;错误3 引脚重映射没有开启AFIO时钟;总结关于编码器的溢出处理:网上的检测数值突变的方法不可靠,会有漏检的情况。在滴答定时器中检测encoder的值突变void SysT...原创 2018-03-29 13:13:12 · 17091 阅读 · 2 评论 -
keil调试时数组数值显示truncated
KEIL4里面,大于2048的数组在仿真的时候,在watch里查看,大于2048的会被truncated裁剪掉大于2048可以用,但仿真只能显示2048;原创 2017-09-25 19:57:29 · 4525 阅读 · 1 评论 -
keil编译提示Execution region RW_IRAM1 size (65552 bytes) exceeds limit (65536 bytes). Region contains 16
.\Objects\IRCryogen_App.axf: Error: L6220E: Execution region RW_IRAM1 size (65552 bytes) exceeds limit (65536 bytes). Region contains 16 bytes of padding and 0 bytes of veneers (total 16 bytes of link原创 2017-09-25 19:56:52 · 16084 阅读 · 1 评论 -
ucos系统使用delay函数死机原因
delay函数,占用了stm32的时钟ucos需要靠stm32的时钟来调度任务用裸机得delay就剥夺了ucos的时钟,所以死机ucos ii 系统应该使用OSTimeDlyHMSM(0,0,0,10,OS_OPT_TIME_HMSM_STRICT,&err)函数做延时原创 2017-09-13 20:00:47 · 5516 阅读 · 2 评论 -
STM32的TIM1_CH1N反向引脚输出PWM波.txt
PB14 PB15是STM32的TIM1的反向引脚L11 H8 F2 35 53 75 PB14 I/O FT PB14 SPI2_MISO/TIM1_CH2NUSART3_RTS(8)/L12 G8 F1 36 54 76 PB15 I/O FT PB15 SPI2_MOSI/I2S2_SDTIM1_CH3N(8)/可以输出PWM波极性与TIM1_CH相反。代码如下/** ***********原创 2016-11-17 18:42:00 · 12175 阅读 · 0 评论 -
STM32与AD7249通信失败原因
stm32与ad7249按照典型电路配置好后,通信不正常。原因是clr引脚没有按照datasheet的要求置低。 A CLR function is provided which sets theoutput to 0 V in both unipolar ranges and in the twos complement bipolar range, while with offse原创 2016-11-15 21:53:11 · 923 阅读 · 0 评论 -
DRV8848通道输出不正常原因
在使用DRV8848做直流电机的驱动时,发现两对通道只能有一路通道控制。DRV8848有并联模式,两对通道可以并联输出。要使两对通道分别输出,需要设置芯片退出并联模式。The two drivers can be used in parallel to deliver twice the current to a single motor. To enter parallel mo原创 2016-11-15 21:52:25 · 4098 阅读 · 1 评论 -
关于Rs485通信只能接收不能发送的问题
在485传输方向正确的前提下//MAX3485数据传输方向void MAX3485_DIRECTION(u8 direction){ if(direction == MAX3485_Send){ //高电平发送GPIO_WriteBit(MAX3485_DIRC_GPIO, MAX3485_DIRECTION_OUT, Bit_SET);delay_ms(原创 2016-08-18 19:31:56 · 20141 阅读 · 1 评论 -
stm32引脚默认状态
STM32中空的I/O管脚是高电平还是低电平取决于具体情况。1、IO端口复位后处于浮空状态,也就是其电平状态由外围电路决定。2、STM32上电复位瞬间I/O口的电平状态默认是浮空输入,因此是高阻。做到低功耗。3、STM32的IO管脚配置口默认为浮空输入,把选择权留给用户,这是一个很大的优势:一方面浮空输入确保不会出现用户不希望的默认电平(此时电平取决于用户的外围电路);另一方面降低原创 2016-08-18 19:31:27 · 35106 阅读 · 1 评论 -
stm32通过SPI与adc124s021通信读取ad
/** * 配置用于操作ADC124S21的模拟SPI GPIO端口 */static void U11ADC124S021_GPIO_init(){ SPI_InitTypeDef SPI_InitStructure; //定义SPI结构体 GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO结构体原创 2016-08-18 19:26:39 · 11102 阅读 · 0 评论 -
stm32启动文件
这是ST提供的3个启动文件,分别适用于不同容量的STM32芯片。 这三个文件为: startup_stm32f10x_ld.s startup_stm32f10x_md.s startup_stm32f10x_hd.s 其中,ld.s适用于小容量 产品;md.s适用于中等容量产品;hd适用于大容量产品; 这里的容原创 2016-08-18 19:25:17 · 1081 阅读 · 0 评论 -
串行AD芯片ADC12S021的时序问题
ADC124S0214 Channel, 50 ksps to 200 ksps, 12-Bit A/D Converter在接触ADC124S021这个芯片以前,我一直以为AD芯片都是串行输出的,好多个引脚(起码一位数字输出一个管脚吧)。这个我用手拿起来都费劲的10管脚小芯片居然是12位AD,还是4通道的。我第一次写单片机程序就要控制这个小东西,结果开始的时候时序还搞错了。偏偏原创 2016-06-15 20:14:57 · 4302 阅读 · 0 评论 -
keil uv5重命名工程的简单方法
有一个简单的办法。假设原来的工程文件名是first,在工程文件目录中,你可以看到很多主文件名为first的文件,其中有两个文件分别叫做:first.uvopt和first.uvproj。你只要把这两个文件的主文件名改成你需要的名字,例如second,变成second.uvopt和second.uvproj。其他first文件统统删除。原创 2016-06-15 20:13:41 · 13488 阅读 · 0 评论 -
keil调试 查看某一个gpio电平 等状态
1、 程序添加到工程中,编译通过。2、进入软件仿真模式。3、在外围设备peripherals一栏,选择相应端口。2、 3、 odr一栏中,对号代表对应的io口高电平,4、 各栏目解释端口配置低寄存器(GPIOx_CRL)(x=A..E)端口配置高寄存器(GPIOx_CRH)(x=A..E)端口输入数据寄存器(GPIOx_IDR)(x=A..E)端口输出数据原创 2016-05-18 18:43:46 · 29982 阅读 · 0 评论 -
keil编译出现function abs declared implicitly的解决方法
USERsrcSHR_RGLV5K_main.c(536) warning #223-D function abs declared implicitly解决方法1 #include 解决方法2:在调用该函数的前头加了一句“extern double abs(double __x); ” 另外fabs函数不用加外部声明直接调用也没报警,偏偏是abs函数就有这个问题呢。看了看原创 2016-05-10 18:16:03 · 49512 阅读 · 2 评论 -
arm自动重启的原因
能导致复位的也就几种,硬件异常,看门狗复位或者PC指针被强制到0,如果没有看门狗的话,可以看看cpu的供电和reset管脚是否出现了异常。软件的问题,堆栈只是一部分,中断保护,内存越界等等问题都会造成异常。未定义异常就是由于PC指乱了地方,导致CPU将data取来作为指令,而指令不存在才产生的。原创 2016-04-25 19:25:38 · 3499 阅读 · 0 评论 -
两个STM32之间进行SPI通信
采用双向通信模式,主机mosi—从机的mosi主机从机配置一致。从机的片选引脚要设置成浮空输入。主机片选引脚设置成推挽输出主机配置void MB90092_CS_Configuration(void){ GPIO_InitTypeDef MB90092_CS_GPIO_InitStructure; /* GPIOC Periph clock enable */原创 2016-03-24 15:42:00 · 12460 阅读 · 2 评论 -
stm32的SPI总结
引脚介绍SPI 包含 4 条总线,SPI 总线包含 4 条总线,分别为——SS 、SCK、MOSI、MISO。它们的作用介绍如下 :1)SS ( Slave Select):片选信号线,当有多个 SPI 设备与 MCU 相连时,每个设备的这个片选信号线是与 MCU 单独的引脚相连的,而其他的 SCK、MOSI、MISO线则为多个设备并联到相同的 SPI 总线上,见图 15- 1。当原创 2016-03-24 15:41:11 · 19989 阅读 · 1 评论 -
keil烧写错误整理
首先显示错误:No Jlink Device found 这是没有安装驱动造成的所以下载Jlink 驱动http://so.baiduyun.me/search.php?wd=jlink%E9%A9%B1%E5%8A%A8&ch=&tn=baidu&bar=&rsv_spt=3&ie=utf-8&rsv_n=2&rsv_sug3=1&rsv_sug=0&rsv_sug1=1&rsv原创 2016-02-27 14:26:34 · 3487 阅读 · 0 评论 -
指针用于将函数中形参的值传递给实参
void Get_Value_2(unsigned int*data0,unsigned int *data1){ //buf中数据长度 unsignedshort buf_len = 0; //buf数据中值的位数 unsignedshort buf_data_len = 0; unsigne原创 2016-01-15 17:24:36 · 1508 阅读 · 0 评论 -
生成ASICII码用于命令反馈
void SendRepayPacket(char*replay_cmd,unsigned int pCmdData){ unsignedchar pPacket[20]; unsignedshort wdLen = 0; unsignedchar btCheckSum = 0; unsignedchar i;原创 2016-01-15 09:50:25 · 831 阅读 · 0 评论 -
只执行一次的标志位
//1————————进入图像自动模式设置 if(KEY4_count==2) { Q1=1; if(KEY1_flag)//+ {原创 2016-01-14 11:28:21 · 1354 阅读 · 0 评论 -
STM32按键总结(低电平有效及上升沿有效))
低电平有效的按键#define KEY1 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_10)//读取按键0#define KEY2 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13)//读取按键1#define KEY3 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_2)//读取按键2 #原创 2016-01-14 11:27:26 · 8285 阅读 · 0 评论 -
中断向量重定位
中断向量重定位//重定位中断向量表到0x08003000NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x3000处);/** *@brief设置向量表的位置和偏移量。 *参数NVIC_VectTab:指定是否向量表在RAM或闪存。 *该参数可以是以下值之一: *@arg NVIC_VectTab_RAM *@arg NVI原创 2015-12-15 18:00:18 · 4342 阅读 · 0 评论 -
通信调试经验笔记
1、 在接收的一串数据中,对关键字节的判断、解析。在云台转发主控板信息的代码中,定义了一个长度33的数组,主控板发送的信息中,最长的字节数确实是33,其中ccd_rdata[2]代表该串信号的字节数,但是如果在发送这一个字节的时候受到干扰,云台接收到了不正确的字节数,(实际测试出现过截到的该数据是0X84的情况),这样云台一直接收到它认为的字节数并存到长度33的数组中,那么数组会溢出,而之后又原创 2015-10-16 09:56:22 · 1205 阅读 · 0 评论 -
关于手机、电脑、单片机等的架构、速度和相关术语
总结接触了不少芯片,但是一直不太明白处理器架构、处理速度等。用过的芯片有赛灵斯的zynq7000、飞思卡尔的MC9S12、51、STM32F103\STM32F407;对速度,性能并没有系统了解。 1、ARM是处理器的架构、2、手机大部分也采用ARM架构;3、zynq是采用 cortex-A9,是一个比较高端的,以前单核智能机即是这种架构;4、STM32F103\S原创 2015-10-10 15:48:17 · 2543 阅读 · 1 评论 -
FPGA与STM32串口通信
FPGA中,添加一个TTL串口;与STM32串口通信引脚相连。波特率一致; FPGA: void uart_stm32_isr(void *context,alt_u32 id)//中断服务函数{ //i1=0; alt_u16 status9; do { status9 =IORD_ALTERA_AVALON_UART_STATUS(UA原创 2015-09-28 17:28:22 · 13821 阅读 · 2 评论 -
STM32学习笔记(7):USART串口的使用
STM32学习笔记(7):USART串口的使用2011年4月19日USART串口通信1.串口的基本概念在STM32的参考手册中,串口被描述成通用同步异步收发器(USART),它提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能原创 2015-08-27 09:19:33 · 4975 阅读 · 0 评论