飞思卡尔KL25单片机芯片实现流水灯系统

飞思卡尔KL25单片机芯片用C语言实现KL25流水灯系统,如何构思?

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
飞思卡尔的P2020上移植bootrom失败
在飞思卡尔的P2020上移植bootrom,从nor flash的0地址开始烧写,bootrom启动失败了,串口没有任何打印。 然后用逻辑分析仪查看,发现从flash的0xFFFFC开始执行指令,只执行了一条指令(BL)和数据,就停止了。 是我flash烧录的位置有问题吗?哪位大牛研究过? 求指点!!! 而且Nor flash和CPU颠倒连接(地址,数据均反)为什么这么做?对移植有什么影响吗?
飞思卡尔K60摄像头赛道中心线提取问题,求解答
为何我提取的拟合中线发送到上位机上无法显示,求赐教,谢谢啦 void Binarization(void)//二值化函数 { u8 i,j; u8 left_line=0,right_line=0; for(i=0;i<DATALINE;i++) { for(j=0;j<DATACOUNT;j++) //二值化程序段 { if(ADdata[i][j]>threshold) ADdata1[i][j] = 1;//白色 else ADdata1[i][j] = 0;//黑色 //ADdata[30][j]=0x00;//在第20行产生标志线 //ADdata[50][j]=0x00;//在第80行产生标志线 //uart_putchar(UART0,ADdata1[i][j]); } ////////////////////////////////////////////////////////////////////////////////////////////////////////// for(j=DATACOUNT/2;j>0;j--) //提取黑线 { if((ADdata1[i][j]==0)&&(ADdata1[i][j-1]==0)&&(ADdata1[i][j-2]==0)) { left_line = j; break; } else left_line = 0; } for(j=DATACOUNT/2;j<DATACOUNT;j++) { if((ADdata1[i][j]==0)&&(ADdata1[i][j+1]==0)&&(ADdata1[i][j+2]==0)) { right_line = j; break; } else right_line = 140; } Center[i] = (left_line+right_line+1)/2;//确定中心线 Centerline[i][Center[i]]=0;//拟合中心线为黑色 uart_putchar(UART0,Centerline[i][Center[i]]); } } ``` ```
飞思卡尔MLIB库运用问题
在飞思卡尔官网上说利用MLIB库能让MCU的指令实现高效和快速的数学运算,但是我试了一下,利用MLIB库 MLIB_Mul32SS进行乘法运算,MLIB_Mul32SS(4,5)与直接4*5前者占用空间和执行时间都比后者大,是不是我的用法错了?
关于飞思卡尔MC9S12G定时中断问题
为什么我如何改TCx寄存器的值定时的时间还是没变?求大神指导 代码如下 #include <hidef.h> /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ unsigned int num,num1; //24M总线周期,指令周期2M //延时1S函数 void delay() { unsigned int a,b; for(a=0;a<2000;a++); for(b=0;b<1000;b++); } void CLOCK_INIT(void); void main(void) { /* put your own code here */ DisableInterrupts; CLOCK_INIT(); //时钟初始化 总线为24M EnableInterrupts; TFLG2_TOF=1;//清标志位 DDRM_DDRM2=1; PTM_PTM2=1; TSCR1_TEN=0;//定时器不使能 TCNT=0x0000; TIOS_IOS0=1;//输出输入选择 TCTL2_OM0=0; TCTL2_OL0=1; TC0=0x8000; TIE_C0I=1; //使能中断 TSCR2=0X00; //不分频 TSCR1_TEN=1;//使能 for(;;) { /* delay(); PTM_PTM2=~PTM_PTM2; delay(); */ if(num==366) { num=0; DDRM_DDRM2=~DDRM_DDRM2; } } /* loop forever */ /* please make sure that you never leave main */ } void CLOCK_INIT(void) { // CPMUPROT_PROT=0; // CPMUCLKS_PLLSEL=1; CPMUOSC_OSCE=1; //选择外部振荡器 CPMUREFDIV_REFFRQ=2; //6M-8M CPMUREFDIV_REFDIV=0; //不分频 Fref=8M CPMUSYNR_SYNDIV=2; // 2*8*(2+1)=48M Fvco=48M CPMUSYNR_VCOFRQ=0; //32M-48M CPMUPOSTDIV_POSTDIV=0;//不分频 Fpll=Fvco=48M Fbus=(Fpll/2)=24M CPMUCLKS_PLLSEL=1; while(CPMUFLG_LOCK!=0);//等待时钟稳定 } #pragma CODE_SEG __NEAR_SEG NON_BANKED void interrupt 8 aa(void) { num++; TFLG1 = TFLG1_C0F_MASK; TFLG2 = TFLG2_TOF_MASK; } #pragma CODE_SEG DEFAULT
飞思卡尔智能小车摄像头组
怎么驱动板测出来的电压跟预定值不一样,主板电压没毛病。而且驱动板上的小电源一接电路就很烫,是哪里出了毛病
飞思卡尔K60中的PIT的链模式下CHN寄存器的使用
void PIT_ISR()//中断函数 { static uint32_t i = 0; GPIO_ToggleBit(HW_GPIOE,7);//小灯亮灭指示进入中断 printf("enter interrupt is %d\r\n",i++);//记录进入中断次数 PIT->CHANNEL[2].TFLG |= PIT_TFLG_TIF_MASK; //中断标志位清零 } int main(void) { static uint32_t fac_us = 0; DelayInit(); /* 初始化PE6端口推完输出 */ GPIO_InitTypeDef GPIO_InitStruct1; GPIO_InitStruct1.instance = HW_GPIOE; GPIO_InitStruct1.pinx = 6; GPIO_InitStruct1.mode = kGPIO_Mode_OPP; GPIO_Init(&GPIO_InitStruct1); /* 初始化PE7端口推完输出 */ GPIO_InitTypeDef GPIO_InitStruct2; GPIO_InitStruct1.instance = HW_GPIOE; GPIO_InitStruct1.pinx = 7; GPIO_InitStruct1.mode = kGPIO_Mode_OPP; GPIO_Init(&GPIO_InitStruct2); /* 初始化串口UART0 */ UART_InitTypeDef UART_InitStruct1; UART_InitStruct1.baudrate = 115200; UART_InitStruct1.bitPerChar = kUART_8BitsPerChar; UART_InitStruct1.instance = HW_UART0; UART_InitStruct1.parityMode = kUART_ParityDisabled; UART_Init(&UART_InitStruct1); PORT_PinMuxConfig(HW_GPIOD,6,kPinAlt3); PORT_PinMuxConfig(HW_GPIOD,7,kPinAlt3); printf(" UART0 is ok\r\n"); SIM->SCGC6 |= SIM_SCGC6_PIT_MASK;//打开模块时钟 PIT->MCR &= ~PIT_MCR_MDIS_MASK; //打开模块 PIT->CHANNEL[2].TCTRL = PIT_TCTRL_TIE_MASK;/*打开中断同时清零其余寄存器*/ PIT->CHANNEL[2].TCTRL |= PIT_TCTRL_TEN_MASK;//PIT2定时器使能 PIT->CHANNEL[2].TCTRL |= PIT_TCTRL_CHN_MASK;//寄存器链模式开启 fac_us = GetClock(kBusClock);//读取总线频率 fac_us /= 1000000; PIT->CHANNEL[2].LDVAL = fac_us*1000*1000;//中断周期1S NVIC_EnableIRQ(PIT2_IRQn);//打开中断优先级 PIT->CHANNEL[1].TCTRL |= PIT_TCTRL_TEN_MASK;//PIT1定时器使能 PIT->CHANNEL[1].LDVAL = fac_us*1000*2000;//中断周期2S PIT_CallbackInstall(HW_PIT_CH2,PIT_ISR); //中断回调函数 while(1) { GPIO_ToggleBit(HW_GPIOE,6);//小灯亮灭指示系统运行 DelayMs(500); } } 请问为什么CHN没有起左右,PIT2和PIT1寄存器没有 连在一起,中断的周期时间没有变,还是PIT2的中断周期,求解答求解答
IMX6ARM平台gstreamer视频始终全屏播放
目前采用ARM芯片为飞思卡尔的imx6,该芯片具备VPU,具备硬件加速的能力。在ARM板上安装UBUNTU系统,桌面为XFCE桌面/KDE桌面/GNOME桌面(都尝试了),安装gstreamer1.0播放器可以流畅播放高清视频。但是使用QT调用gstreamer后,无法在QTwidget上播放,而是全屏播放。 另外使用gst-launch-1.0 filesrc location=/home/chipsee/haihang.flv ! decodebin ! videoconvert ! video/x-raw,width=1280,height=720,framerate=30/1 ! imxipuvideosink无法修改画面尺寸。。 请问:使用gst-launch-1.0要想修改最后画面尺寸应该用什么完整命令?无法像VLC一样在QTwindget上指定窗口播放跟调用方法是否有关,提出宝贵建议
imx6arm平台安装VLC未能调用硬件加速
项目描述: 目前采用ARM芯片为飞思卡尔的imx6,该芯片具备VPU,具备硬件加速的能力。在ARM板上安装UBUNTU14系统,桌面为XFCE桌面,安装gstreamer1.0播放器可以流畅播放高清视频。在ARM开发板上登陆VLC官网安装VLC2.1.6/vlc2.1.2播放器,播放视频卡顿,只能出现第一帧画面。打开VLCVA-API硬件加速没任何效果。后续了解到VLC,目前只对intelGPU nvidiaGPU这些设备提供了硬件加速接口,类似的硬件加速模块式VAAPI,VDPAU,DXVA等都不适用ARM开发板。。我们是想继续用VLC+ffmpeg这样的框架,其他平台都是这个框架。在上述硬件平台上如何才能使VLC进行硬件加速。
飞思卡尔编译器不能全速运行
# codewarrior 不能全速运行 大家好,本人用的MC9S12S128的飞思卡尔芯片,里面用了简单的定时中断,SCI,下面是源代码。我用的IDE是codewarrior 在运行中有两个现象,1,不能全速运行,只能点一步运行一步。 2,长按f11,在程序运行两个来回以上,拔掉BDM,再上电。程序有可能烧进去了 /*---------------------------------------------------------*/ /************************************************************ ************************************************************/ /*---------------------------------------------------------*/ #include <hidef.h> /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ #define LEDCPU PORTK_PK4 #define LEDCPU_dir DDRK_DDRK4 #define BUS_CLOCK 32000000 //总线频率 #define OSC_CLOCK 16000000 //晶振频率 unsigned char a[56]={0XEB,0X90,0X83}; #define BAUD 38400 //串口波特率 /*************************************************************/ /* 初始化锁相环 */ /*************************************************************/ void INIT_PLL(void) { CLKSEL &= 0x7f; //set OSCCLK as sysclk PLLCTL &= 0x8F; //Disable PLL circuit CRGINT &= 0xDF; #if(BUS_CLOCK == 40000000) SYNR = 0x44; #elif(BUS_CLOCK == 32000000) SYNR = 0x43; #elif(BUS_CLOCK == 24000000) SYNR = 0x42; #endif REFDV = 0x81; //PLLCLK=2×OSCCLK×(SYNR+1)/(REFDV+1)=64MHz ,fbus=32M PLLCTL =PLLCTL|0x70; //Enable PLL circuit asm NOP; asm NOP; while(!(CRGFLG&0x08)); //PLLCLK is Locked already CLKSEL |= 0x80; //set PLLCLK as sysclk } /*************************************************************/ /*************************************************************/ /* 初始化SCI */ /*************************************************************/ void INIT_SCI(void) { SCI0BD = BUS_CLOCK/16/BAUD; //设置SCI0波特率为9600 SCI0CR1 = 0x00; //设置SCI0为正常模式,八位数据位,无奇偶校验 SCI0CR2 = 0x08; //允许发送数据,禁止中断功能 } /*************************************************************/ /*************************************************************/ /* 串口发送函数 */ /*************************************************************/ void SCI_send(unsigned char data) { while(!SCI0SR1_TDRE); //等待发送数据寄存器(缓冲器)为空 SCI0DRL = data; } /*************************************************************/ /* 串口发送字符串函数 */ /*************************************************************/ void send_string(unsigned char j) { while(j<56) //判断字符串是否发送完毕 { SCI_send(a[j]); } } /*************************************************************/ /*************************************************************/ /* PIT模块初始化函数 */ /*************************************************************/ void init_PIT(){ /* PITMTLD0=249; //为0通道8位计数器赋值 PITLD0=63999; //为0通道16位计数器赋值 //(249+1)*(63999+1)=16000000个总线周期=0.5秒 PITMUX_PMUX0=0; //第0通道使用微计数器0 PITCE_PCE0=1; //第0通道计数器工作 PITCFLMT=0X80; //使能周期中断定时器 PITINTE_PINTE0=1; //0通道定时器定时中断被使能 */ PITCFLMT=0X00; //禁止PIT模块 PITCE_PCE0=1; // 使能定时器通道0 PITMUX=0X00;//定时器通道0使用Base Timer0(微定时基准0) PITMTLD0=0XFF;//设置8位微定时装载寄存器0初值 PITLD0=0XFFFF;//设置16位装载寄存器0初值 //定时周期=(PITMTLD0+1)*(PITLD0+1)*(1/fBUS)=0.52428s PITINTE=0X01;//使能PIT定时器通道0中断 PITCFLMT=0X80;//使能PIT模块 } #pragma CODE_SEG __NEAR_SEG NON_BANKED interrupt void PIT_INTER(void) { unsigned char i; if(PITTF_PTF0==1) { PITTF_PTF0=1; //把1改为0 LEDCPU=~LEDCPU; for (i=0;i=i+1;) { send_string(a[i]); } } } #pragma CODE_SEG DEFAULT /*************************************************************/ /* 主函数 */ /*************************************************************/ void main(void) { INIT_PLL(); LEDCPU_dir=1; //设置 PORTK_PK4为输出脚位 init_PIT(); INIT_SCI(); EnableInterrupts; for(;;) { } }
Android 播放视频线有绿条闪烁
系统是飞思卡尔的Android6.0, 我自己写个小demo播放视频没有问题。 但是客户自己写的apk安装到我们的系统上就出现绿条在闪。 apk里面用到了MediaPlayer,GLES20,SurfaceTexture,还有一个com.badlogic.gdx(好像是什么游戏框架) 注:有的视频会有的视频不会,视频播放时感觉系统比较卡顿![图片说明](https://img-ask.csdn.net/upload/201710/17/1508200445_316910.jpg)![图片说明](https://img-ask.csdn.net/upload/201710/17/1508200470_656315.jpg)
QT+gstreamer,视频不在窗口显示问题
目前采用ARM芯片为飞思卡尔的imx6,该芯片具备VPU,具备硬件加速的能力。在ARM板上安装UBUNTU14系统,桌面为XFCE桌面,安装gstreamer1.0(使用synaptic一键安装)播放器可以流畅播放高清视频。使用QT5.1.2调用gstreamer1.0,视频无法在指定窗口播放,而是全屏播放 代码摘录如下,请指出不能在正确位置播放是否为调用方法问题? Widget::Widget(QWidget *parent) : QWidget(parent) { /* Create the elements */ data->playbin2 = gst_element_factory_make ("playbin", "playbin2"); g_object_set(data->playbin2, "uri", uri.toUtf8().data(), NULL); /* Create the GUI */ createUi(data); /* Instruct the bus to emit signals for each received message, and connect to the interesting signals */ bus = gst_element_get_bus (data->playbin2); } void Widget::createUi (CustomData *data) { setWindowTitle(tr("????????")); setWindowIcon(QIcon(":/new/image/Image/icon_fronware.png")); resize(600,500); setStyleSheet("background-color: white;"); qDebug()<<"CURRENT WIDGET"<<this->winId(); mainLayout = new QVBoxLayout(this); mainLayout->setContentsMargins(5,5,5,5); mainLayout->setSpacing(5); displayWnd = new VideoWidget; qDebug()<<"1"<<displayWnd->width()<<displayWnd->height(); backgroundWnd = new QLabel; backgroundWnd->setStyleSheet("background-color: black;"); qDebug()<<"2backgroundWnd"<<backgroundWnd->width()<<backgroundWnd->height(); renderWnd = new QStackedWidget; //A = new QGstWidget; renderWnd->addWidget(displayWnd); renderWnd->addWidget(backgroundWnd); renderWnd->setCurrentIndex(0); //qDebug()<<"2"<<displayWnd->width()<<displayWnd->height(); qDebug()<<"2renderWnd"<<renderWnd->width()<<renderWnd->height(); qDebug()<<"3renderWnd"<<this->width()<<this->height(); slider = new QSlider(Qt::Horizontal); slider->setFixedHeight(15); timeLabel = new QLabel; timeLabel->setFixedHeight(15); timeLabel->setStyleSheet("background-color: #ffffff;color:black; font-family:\"STXihei\";font-size: 10px;"); timeLabel->setText("00:00:00/00:00:00"); timeLayout = new QHBoxLayout; timeLayout->setContentsMargins(0,0,0,0); timeLayout->setSpacing(5); timeLayout->addWidget(slider,5); timeLayout->addWidget(timeLabel,1); infoLabel = new QLabel; infoLabel->setFixedHeight(25); infoLabel->setStyleSheet("background-color: white;color:black; font-family:\"STXihei\";font-size: 15px;"); openBtn = new QPushButton; openBtn->setFixedSize(75,25); openBtn->setText("????"); openBtn->setStyleSheet(" QPushButton{border: 1px solid #C0C0C0; \ background-color: white;\ border-style: solid;\ border-radius:0px;\ color:black;\ font-family:\"STXihei\";\ font-size: 15px;\ padding:0 0px;\ margin:0 0px;\ }\ QPushButton:hover{border: 1px solid #C0C0C0; \ background-color: #ececec;\ border-style: solid;\ border-radius:0px;\ color:black;\ font-family:\"STXihei\";\ font-size: 15px;\ padding:0 0px;\ margin:0 0px;\ }\ "); startBtn = new QPushButton; startBtn->setFixedSize(45,25); startBtn->setText("??"); startBtn->setStyleSheet(openBtn->styleSheet()); stopBtn = new QPushButton; stopBtn->setFixedSize(45,25); stopBtn->setText("??"); stopBtn->setStyleSheet(openBtn->styleSheet()); plauseBtn = new QPushButton; plauseBtn->setFixedSize(45,25); plauseBtn->setText("??"); plauseBtn->setStyleSheet(openBtn->styleSheet()); plauseBtn->setVisible(false); muteButton = new QToolButton; muteButton->setFixedSize(45,25); muteButton->setIcon(style()->standardIcon(QStyle::SP_MediaVolume)); volumeSlider = new QSlider(Qt::Horizontal); volumeSlider->setFixedSize(60,15); volumeSlider->setRange(0,100); buttonLayout = new QHBoxLayout; buttonLayout->setContentsMargins(0,0,0,0); buttonLayout->setSpacing(15); buttonLayout->addStretch(); buttonLayout->addWidget(openBtn); buttonLayout->addWidget(startBtn); buttonLayout->addWidget(plauseBtn); buttonLayout->addWidget(stopBtn); buttonLayout->addWidget(muteButton); buttonLayout->addWidget(volumeSlider); buttonLayout->addStretch(); mainLayout->addWidget(renderWnd,5); mainLayout->addWidget(infoLabel,1); mainLayout->addLayout(timeLayout); mainLayout->addLayout(buttonLayout); qDebug()<<"3"<<displayWnd->width()<<displayWnd->height(); realize_cb(displayWnd,data); connect(openBtn,SIGNAL(clicked()),this,SLOT(slotOpenButtonClicked())); connect(startBtn,SIGNAL(clicked()),this,SLOT(slotPlayButtonClicked())); connect(plauseBtn,SIGNAL(clicked()),this,SLOT(slotPaluseButtonClicked())); connect(stopBtn,SIGNAL(clicked()),this,SLOT(slotStopButtonClicked())); connect(displayWnd,SIGNAL(fullScreenSignal(bool)),this,SLOT(slotFullScreen(bool))); connect(muteButton,SIGNAL(clicked()),this,SLOT(slotmuteButtonClicked())); connect(volumeSlider,SIGNAL(sliderMoved(int)),this,SLOT(slotVolumeChange(int))); slider->setRange(0,100); volumeSlider->setValue(50); data->slider = slider; connect(slider,SIGNAL(sliderMoved(int)),this,SLOT(seek(int))); data->streams_list = infoLabel; qDebug()<<"4"<<displayWnd->width()<<displayWnd->height(); } void Widget::realize_cb(QWidget *widget, CustomData *data) { guintptr window_handle; window_handle = (guintptr)(widget->winId()); gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(data->playbin2),window_handle); } void Widget::playButtonClicked(QPushButton *button, CustomData *data) { Q_UNUSED(button); GstStateChangeReturn ret; ret = gst_element_set_state (data->playbin2, GST_STATE_PLAYING); }
MKL46Z 程序运行一段时间出现死在HardFault_hander
如题,在主循环里运行了一段时间后,死了,发现是在HardFault____hander,show caller code下,跳到了一个我根本没有调用的函数里面,是咋回事?
C# picturebox显示的图片会被模糊化
就像下图那样 ![图片说明](https://img-ask.csdn.net/upload/201703/06/1488806184_714690.png) 而我想要实现的效果是这样 ![图片说明](https://img-ask.csdn.net/upload/201703/06/1488806229_146548.png) 望大神指导,拜托了!!!
在工控机下正常执行的串口液晶测试程序,到arm平台下不能正常执行
串口液晶屏在工控机上测试程序可行,到开发板上不行? 串口液晶使用的是SLCM19264 工控机系统为unbuntu10.04,编译器gcc 开发板为arm的xm31平台,交叉编译器arm-none-linux-gnueabi-gcc 程序如下 #include <stdio.h> #include <string.h> #include <sys/types.h> #include <errno.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <termios.h> #include <stdlib.h> int fd; static void uart_set(int fd, int baud, int databits, char parity, int stopbits) { struct termios opt; tcgetattr (fd, &opt); opt.c_cflag |= (CLOCAL | CREAD); printf("ispeed = %d\n", cfgetispeed(&opt)); printf("ospeed = %d\n", cfgetospeed(&opt)); switch (baud) { case 9600: cfsetispeed(&opt, B9600); cfsetospeed(&opt, B9600); break; case 19200: cfsetispeed(&opt, B19200); cfsetospeed(&opt, B19200); break; case 57600: cfsetispeed(&opt, B57600); cfsetospeed(&opt, B57600); break; case 115200: cfsetispeed(&opt, B115200); cfsetospeed(&opt, B115200); break; default: cfsetispeed(&opt, B115200); cfsetospeed(&opt, B115200); break; } opt.c_cflag &= ~CSIZE; switch (databits) { case 7: opt.c_cflag |= CS7; break; case 8: opt.c_cflag |= CS8; break; default: printf ("Unsupported data size\n"); return; } switch (parity) { case 'n': case 'N': opt.c_cflag &= ~PARENB; break; case 'o': // odd case 'O': opt.c_cflag |= (PARODD | PARENB); //opt.c_iflag |= INPCK; break; case 'e': // even case 'E': opt.c_cflag |= PARENB; opt.c_cflag &= ~PARODD; //opt.c_iflag |= INPCK; break; case 's': //space case 'S': opt.c_cflag &= ~PARENB; opt.c_cflag &= ~CSTOPB; break; default: printf ("Unsupported parity\n"); return; } switch (stopbits) { case 1: opt.c_cflag &= ~CSTOPB; break; case 2: opt.c_cflag |= CSTOPB; break; default: printf ("Unsupported stop bits\n"); return; } opt.c_cc[VTIME] = 0; opt.c_cc[VMIN] = 0; // set raw input opt.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); opt.c_iflag &= ~(INLCR | ICRNL | IGNCR); // set raw output opt.c_oflag &= ~OPOST; opt.c_oflag &= ~OLCUC; opt.c_oflag &= ~ONLRET; opt.c_oflag &= ~ONOCR; opt.c_oflag &= ~OCRNL; tcsetattr (fd, TCSANOW, &opt); printf("ispeed = %d\n", cfgetispeed(&opt)); printf("ospeed = %d\n", cfgetospeed(&opt)); tcflush(fd, TCOFLUSH); tcflush(fd, TCIFLUSH); } void Display_info() { printf("%s\n", __FUNCTION__); int ret; char *s = "?"; char c = 0x3F; char c2 = 0x0D; char c3 = 0x72; char c4 = 0x65; char c5 = 0x73; ret = write(fd, &c, 1); ret = write(fd, &c, 1); ret = write(fd, &c, 1); ret = write(fd, &c2, 1); printf("write ok\n"); //ret = write(fd, "???", 3); //ret = write(fd, "\r", 1); usleep(DISPLAY_DELAY); } int main(int argc, char **argv) { int nread,i; int nwrite; unsigned char buff[1024] = {0}; if (argc == 1) { if((fd=open_port(1, "/dev/ttyS0"))<0) { perror("open_port error"); return -1; } } else { if((fd=open_port(1, argv[1]))<0) { perror("open_port error"); return -1; } } printf("fd = %d\n", fd); uart_set(fd, 19200, 8, 'n', 1); while(1) { //Display_Menu(); Display_info(); usleep(2000000); printf("ready read\n"); nread = read(fd,buff,1024); printf("read ok\n"); printf("nread=%d,%s\n",nread,buff); } close(fd); return 0; } 状况是运行程序后,write没有写进去,read返回nread = 0(类似没有在串口接入任何东西的状态) 已经做过的测试: 1.应用程序 用已有的程序实验,在工控机上无问题(液晶屏,应用程序无错) 2.驱动 短接2,3,发现输出,输入无问题(接口,驱动无错) 怀疑:连线问题 结果:线序错了 3.还是无反应 链接液晶屏端串口rt端口 自测有效,排除线的问题。 请问哪位大神知道还有可能是什么问题导致的现在这种情况???
嵌入式i.mx28x的新增加的SPI设备驱动怎么修改移植?求大神指导
请问i.MX287或者i.mx28x系列的核心板,新增加一个SPI设备(ZigBee设备,用SPI通信),这个设备的驱动该怎么修改啊?嵌入式新手求大神指导啊,飞思卡尔的资料好少,求啊!
IAR如何安装其他工作环境
我以前在做zigbee的时候安装过IAR,现在需要参加飞思卡尔的竞赛但IAR只能创建8051的工作环境,求大神知道如何才能为IAR安装ARM的工作环境?![图片说明](https://img-ask.csdn.net/upload/201711/17/1510889523_659744.png)
在Qt中编译带Qwt的ARM程序时总是提示 cannot find -lqwt
我编译Qt的ARM程序就不会报错,而且编译的程序能够顺利在ARM板子上运行,但是只要一加上Qwt就会报错,总是说找不到libqwt.so文件,但是我已经指定了路径了,而且设置了环境变量,它还是提示说找不到。这是怎么回事呢。连在Ubuntu上编译都编译不过,更别说在板子上运行了。下面是我Qt中配置的工具链![报错信息](https://img-ask.csdn.net/upload/201711/11/1510370611_736004.jpg) ![飞思卡尔的板](https://img-ask.csdn.net/upload/201711/11/1510370639_666595.jpg) ![使用Kits-mx6编译](https://img-ask.csdn.net/upload/201711/11/1510370647_398030.jpg) 以上配置如果没有用到qwt是没问题的,能够在板上运行,只要一用到qwt就提示找不到库文件。这问题折腾了我几天了。要醉了
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
python 简易微信实现(注册登录+数据库存储+聊天+GUI+文件传输)
socket+tkinter详解+简易微信实现 历经多天的努力,查阅了许多大佬的博客后终于实现了一个简易的微信O(∩_∩)O~~ 简易数据库的实现 使用pands+CSV实现数据库框架搭建 import socket import threading from pandas import * import pymysql import csv # 创建DataFrame对象 # 存储用户数据的表(...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
开源并不是你认为的那些事
点击上方蓝字 关注我们开源之道导读所以 ————想要理清开源是什么?先要厘清开源不是什么,名正言顺是句中国的古代成语,概念本身的理解非常之重要。大部分生物多样性的起源,...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
相关热词 基于c#波形控件 c# 十进制转十六进制 对文件aes加密vc# c#读取栈中所有的值 c# rsa256加密 好 学c# 还是c++ c# 和java的差距 c# curl网络框架 c# https证书请求 c# 中崎
立即提问