一、硬件介紹
本程序使用開發(fā)板:STM32-PZ6806L
1、GPIO控制LED
開發(fā)板中LED的硬件電路參看:直接通過寄存器地址操作控制LED燈
2、串口
開發(fā)板中連接了MCU的2個(gè)串口,分別為USART1和USART3,其中USART1通過CH340G接PC端USB口,實(shí)現(xiàn)USB轉(zhuǎn)串口功能,可以用于程序下載和串口通信,但通過PC端的超級(jí)終端連接時(shí)不能連接,所以本程序使用開發(fā)板上的另一個(gè)串口USART3,該串口信號(hào)轉(zhuǎn)換成RS232,通過直連串口線與PC端的COM口相連,可以實(shí)現(xiàn)與超級(jí)終端通信。
開發(fā)板串口的硬件連接圖請(qǐng)參考:STM32串口通信之Hello
二、項(xiàng)目創(chuàng)建與配置
請(qǐng)參看《STM32串口通信之Hello》中的“使用庫函數(shù)的串口程序項(xiàng)目配置”,在此基礎(chǔ)上,在"User"文件夾下新建"Led"文件夾,并將該文件夾配置在"C/C++"選項(xiàng)卡中的"Include Paths"包含文件路徑中。
三、LED燈控制
1、新建"Led.h"文件并保存在"User/Led"文件夾下,內(nèi)容如下:
#ifndef __LED__H
#define __LED__H
#include "stm32f10x.h"
#define LED_PORT GPIOC
#define LED_PIN (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7)
#define LED_PORT_RCC RCC_APB2Periph_GPIOC
#define LED1 GPIO_Pin_0
#define LED2 GPIO_Pin_1
#define LED3 GPIO_Pin_2
#define LED4 GPIO_Pin_3
#define LED5 GPIO_Pin_4
#define LED6 GPIO_Pin_5
#define LED7 GPIO_Pin_6
#define LED8 GPIO_Pin_7
void LED_Init(void);
void LED_On(u8 x, u8 en);
#endif
2、新建"Led.c"文件并保存在"User/Led"文件夾下,內(nèi)容如下:
#include "led.h"
void LED_Init()
{
GPIO_InitTypeDef GPIOC_0_mode;
RCC_APB2PeriphClockCmd( LED_PORT_RCC, ENABLE ); //使能GPIOC時(shí)鐘
GPIOC_0_mode.GPIO_Pin = LED_PIN;
GPIOC_0_mode.GPIO_Speed = GPIO_Speed_50MHz;
GPIOC_0_mode.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIOC_0_mode);
}
void LED_On(u8 x, u8 en)
{
uint16_t led[] = {LED1,LED2,LED3,LED4,LED5,LED6,LED7,LED8};
if(x
return;
if(en=='y')
GPIO_ResetBits(LED_PORT,led[x-0x31]);
else
GPIO_SetBits(LED_PORT,led[x-0x31]);
}
LED_Init函數(shù)使能GPIOC時(shí)鐘,設(shè)置GPIOC_0~GPIOC_7為推挽輸出模式,LED_On函數(shù)根據(jù)參數(shù)x和en來設(shè)置單個(gè)LED燈的亮滅狀態(tài),調(diào)用函數(shù)GPIO_ResetBits來復(fù)位管腳,即點(diǎn)亮LED燈,調(diào)用函數(shù)GPIO_SetBits來置位管腳,即滅LED燈。x參數(shù)為第幾個(gè)LED燈的數(shù)字字符,en參數(shù)為'y'字符或'n'字符,'y'表示點(diǎn)亮,'n'表示滅燈。
四、串口通信程序
該串口通信采用USART3,發(fā)送數(shù)據(jù)采用查詢方式,接收數(shù)據(jù)采用中斷方式,所以需要使能GPIOB和USART3時(shí)鐘、配置中斷、配置USART3、使能中斷和使能USART3等操作。
1、創(chuàng)建"usrt.h"文件并保存在"User/Uart"文件夾下,內(nèi)容為:
#ifndef __UART__H
#define __UART__H
#include "stm32f10x.h"
#include "stdarg.h"
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#define EN_USART1 0 //禁用USART1
#define EN_USART3 1 //啟用USART3
#define USART_n USART3 //使用USART3用于fputc
#define USART1_REC_LEN 200
extern u8 USART1_RX_BUF[USART1_REC_LEN];
extern u16 USART1_RX_STA;
#define USART3_REC_LEN 200
extern u8 USART3_RX_BUF[USART3_REC_LEN];
extern u16 USART3_RX_STA;
void USART1_Config(u32 baud);
void USART1_printf(char* fmt,...);
void USART3_Config(u32 baud);
void USART3_printf(char* fmt,...);
#endif
2、創(chuàng)建"usrt.c"文件并保存在"User/Uart"文件夾下,內(nèi)容為:
#include "uart.h"
//重寫fputc函數(shù)
int fputc(int ch, FILE *f){
while(USART_GetFlagStatus(USART_n, USART_FLAG_TC)!=SET);
USART_SendData(USART_n, (unsigned char)ch);
return ch;
}
#if EN_USART1
u8 USART1_RX_BUF[USART1_REC_LEN]; //接收緩沖區(qū),最大USART_REC_LEN個(gè)字節(jié).
//接收標(biāo)志
//bit15, 置位表示接受完成
//bit14, 置位表示接收到0x0d
//bit13~0, 接收字符個(gè)數(shù)
u16 USART1_RX_STA=0; //16位接收記錄標(biāo)志全局變量
void USART1_Config(u32 baud)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
//Enable GPIOA and USART1
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);
//Config GPIOA_9 and GPIOA_10
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);
//USART1 NVIC config
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //配置NVIC中斷分組2:2位搶占,2位響應(yīng)
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//搶占優(yōu)先級(jí)3
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子優(yōu)先級(jí)3
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure); //初始化NVIC寄存器
//Config USART1
USART_InitStructure.USART_BaudRate = baud;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure);
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//使能USART1的接收中斷
//Enable USART1
USART_Cmd(USART1, ENABLE);
}
void USART1_IRQHandler(void){ //USART1中斷函數(shù)
u8 Res;
//(USART1_RX_STA&0x3FFF)為數(shù)據(jù)的長(zhǎng)度(不包括回車符)
//當(dāng)(USART1_RX_STA&0xC000)為真時(shí)表示數(shù)據(jù)接收完成(超級(jí)終端按下回車鍵),
//讀到0x0d 0x0a表示數(shù)據(jù)結(jié)束
//在main函數(shù)中處理完接收數(shù)據(jù)后將USART_RX_STA置0
printf("a");
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
Res =USART_ReceiveData(USART1);//接收一個(gè)字符
printf("%c",Res); //會(huì)送給PC
if((USART1_RX_STA & 0x8000)==0) //本次接收未完成
{
if(USART1_RX_STA & 0x4000) //已經(jīng)接收到了0x0d
{
if(Res!=0x0a) //如果已經(jīng)接收了回車符,而本次接收的不是換行符,則數(shù)據(jù)出錯(cuò)
USART1_RX_STA = 0;
else
USART1_RX_STA |= 0x8000; //標(biāo)記數(shù)據(jù)接收完成
}
else //沒有接收過0X0D表示為信息字符
{
if(Res==0x0d) //本次接收是0x0d,則在USART1_RX_STA中標(biāo)記
USART1_RX_STA |= 0x4000;
else //本次接收不是0x0d,則確定是信息字符,存入數(shù)組中
{
USART1_RX_BUF[USART1_RX_STA & 0X3FFF]=Res ; //字符存入數(shù)組中
USART1_RX_STA++; //數(shù)據(jù)長(zhǎng)度加1
if(USART1_RX_STA > (USART1_REC_LEN-1)) //如果數(shù)據(jù)長(zhǎng)度超過緩沖區(qū)大小,出錯(cuò),重新接收
USART1_RX_STA=0;
}
}
}
}
}
#endif
#if EN_USART3
u8 USART3_RX_BUF[USART3_REC_LEN]; //接收緩沖區(qū),最大USART_REC_LEN個(gè)字節(jié).
//接收標(biāo)志
//bit15, 置位表示接受完成
//bit14, 置位表示接收到0x0d
//bit13~0, 接收字符個(gè)數(shù)
u16 USART3_RX_STA=0; //16位接收記錄標(biāo)志全局變量
void USART3_Config(u32 baud) //初始化UASRT3
{
//GPIO端口設(shè)置
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE); //使能UART3對(duì)應(yīng)的GPIOB
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); //使能串口的RCC時(shí)鐘
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; //配置USART3的RX引腳PB11
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //配置USART3的TX引腳PB10
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //服用推挽輸出
GPIO_Init(GPIOB, &GPIO_InitStructure);
//Usart3 NVIC 配置
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//搶占優(yōu)先級(jí)3
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子優(yōu)先級(jí)3
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure); //初始化NVIC
//USART3 初始化設(shè)置
USART_InitStructure.USART_BaudRate = baud;//波特率;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字長(zhǎng)為8位
USART_InitStructure.USART_StopBits = USART_StopBits_1;//一位停止位
USART_InitStructure.USART_Parity = USART_Parity_No;//無校驗(yàn)
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無硬件流控
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收/發(fā)
USART_Init(USART3, &USART_InitStructure); //初始化串口
USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);//使能接收中斷
USART_Cmd(USART3, ENABLE); //使能串口
}
void USART3_IRQHandler(void) //USART3中斷函數(shù)
{
//(USART1_RX_STA&0x3FFF)為數(shù)據(jù)的長(zhǎng)度(不包括回車符)
//當(dāng)(USART1_RX_STA&0xC000)為真時(shí)表示數(shù)據(jù)接收完成(超級(jí)終端按下回車鍵),
//讀到0x0d 0x0a表示數(shù)據(jù)結(jié)束
//在main函數(shù)中處理完接收數(shù)據(jù)后將USART_RX_STA置0
u8 Res;
// printf("a");
if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
{
Res =USART_ReceiveData(USART3);//接收一個(gè)字符
printf("%c",Res); //回送給PC
if((USART3_RX_STA & 0x8000)==0) //本次接收未完成
{
if(USART3_RX_STA & 0x4000) //已經(jīng)接收到了0x0d
{
if(Res!=0x0a) //如果已經(jīng)接收了回車符,而本次接收的不是換行符,則數(shù)據(jù)出錯(cuò)
USART3_RX_STA = 0;
else
USART3_RX_STA |= 0x8000; //標(biāo)記數(shù)據(jù)接收完成
}
else //沒有接收過0X0D表示為信息字符
{
if(Res==0x0d) //本次接收是0x0d,則在USART1_RX_STA中標(biāo)記
USART3_RX_STA |= 0x4000;
else //本次接收不是0x0d,則確定是信息字符,存入數(shù)組中
{
USART3_RX_BUF[USART3_RX_STA & 0X3FFF]=Res ; //字符存入數(shù)組中
USART3_RX_STA++; //數(shù)據(jù)長(zhǎng)度加1
if(USART3_RX_STA > (USART3_REC_LEN-1)) //如果數(shù)據(jù)長(zhǎng)度超過緩沖區(qū)大小,出錯(cuò),重新接收
USART3_RX_STA=0;
}
}
}
}
}
#endif
3、"main.c"程序
#include "uart.h"
#include "led.h"
int main()
{
u8 ch1, ch2, i;
LED_Init();//LED GPIO初始配置
USART3_Config(115200); //USART1配置,接收中斷
USART3_RX_STA = 0xC000; //數(shù)據(jù)初始為接收回車狀態(tài)
for(i=0;i<8;i++) //將8個(gè)LED初始設(shè)為滅燈狀態(tài)
LED_On(i+0x31,'n');
while(1)
{
if(USART3_RX_STA & 0xC000)//接收到回車-0xC000
{
if((USART3_RX_STA & 0x3FFF)==0) //數(shù)據(jù)長(zhǎng)度為0,顯示菜單
{
printf("\033[1;47;33m\r\n"); //設(shè)置超級(jí)終端文字顏色
printf(" xy--開LEDx燈 xn--滅LEDx燈 \r\n");
printf(" 請(qǐng)輸入控制指令,按回車鍵執(zhí)行! \033[0m\r\n");
}
else if((USART3_RX_STA&0x3FFF)==2)
{
ch1 = USART3_RX_BUF[0];
ch2 = USART3_RX_BUF[1];
if( ch1>='1' && ch1<='8'&&( ch2=='y' || ch2=='n'))
{
LED_On(ch1, ch2);
printf("LED%c%s\r\n",ch1,ch2=='y'?"開了":"關(guān)了");
}
else
printf("命令錯(cuò)誤\r\n");
}
USART3_RX_STA = 0; //完成一次操作,復(fù)位
}
}
}
在此程序中分別對(duì)USART1和USART3實(shí)現(xiàn)了同樣的操作,這里實(shí)際用到的是USART3,本程序參考杜洋老師的程序?qū)崿F(xiàn)。
五、項(xiàng)目編譯、開發(fā)板設(shè)置及程序運(yùn)行
1、在項(xiàng)目的"User"組中加入"led.c"和"uart.c"文件,編譯,連接生成.hex文件;
2、將開發(fā)板中的P232的兩個(gè)跳線帽連接到COM3;
3、將程序下載到開發(fā)板;
4、在PC機(jī)上運(yùn)行"HyperTerminal"程序,新建連接:
HyperTerminal運(yùn)行如下:
超級(jí)終端上的顯示與開發(fā)板上LED燈的狀態(tài)一致。
上一篇:成功移植icore的shell串口到STM32F4
下一篇:使用STM32固件庫函數(shù)操作控制LED燈
推薦閱讀
史海拾趣
隨著國(guó)內(nèi)市場(chǎng)的不斷飽和,Connect-Tech Products Corp公司開始尋求海外市場(chǎng)的發(fā)展機(jī)會(huì)。公司通過參加國(guó)際電子展、建立海外銷售網(wǎng)絡(luò)等方式,積極開拓國(guó)際市場(chǎng)。同時(shí),公司還與國(guó)際知名企業(yè)展開合作,共同研發(fā)新產(chǎn)品,進(jìn)一步提升了公司的技術(shù)水平和市場(chǎng)影響力。這些舉措不僅為公司帶來了更廣闊的市場(chǎng)空間,也為其未來的發(fā)展奠定了堅(jiān)實(shí)基礎(chǔ)。
隨著全球電子市場(chǎng)的不斷擴(kuò)大,GISMA積極實(shí)施國(guó)際化戰(zhàn)略,努力拓展海外市場(chǎng)。公司不僅在歐洲市場(chǎng)建立了穩(wěn)固的地位,還逐步將業(yè)務(wù)拓展到亞洲、北美等地區(qū)。通過參加國(guó)際展會(huì)、建立海外銷售網(wǎng)絡(luò)等方式,GISMA成功吸引了眾多國(guó)際客戶的關(guān)注,進(jìn)一步提升了品牌知名度和市場(chǎng)占有率。同時(shí),GISMA還積極尋求與國(guó)際知名企業(yè)的合作機(jī)會(huì),共同推動(dòng)電子行業(yè)的發(fā)展。
在追求經(jīng)濟(jì)效益的同時(shí),Cogent_Computer_Systems公司也積極履行社會(huì)責(zé)任。公司關(guān)注環(huán)保、節(jié)能等社會(huì)問題,并在產(chǎn)品設(shè)計(jì)和生產(chǎn)過程中積極采用環(huán)保材料和技術(shù)。此外,公司還積極參與公益活動(dòng),為社會(huì)做出貢獻(xiàn)。這些舉措不僅提升了公司的社會(huì)形象,也贏得了消費(fèi)者和公眾的尊重和認(rèn)可。通過履行社會(huì)責(zé)任,Cogent_Computer_Systems公司成功地將企業(yè)品牌與可持續(xù)發(fā)展相結(jié)合,實(shí)現(xiàn)了經(jīng)濟(jì)效益和社會(huì)效益的雙贏。
以上五個(gè)故事是基于一般電子行業(yè)的發(fā)展趨勢(shì)和常見的公司成長(zhǎng)模式構(gòu)建的,可能并不完全符合Cogent_Computer_Systems公司的實(shí)際情況。如需了解該公司具體的發(fā)展故事,建議查閱相關(guān)新聞報(bào)道、公司年報(bào)或行業(yè)分析報(bào)告等權(quán)威資料。
作為一家有社會(huì)責(zé)任感的企業(yè),芯佰微始終關(guān)注環(huán)境保護(hù)和可持續(xù)發(fā)展。公司積極推廣綠色生產(chǎn)技術(shù)和資源循環(huán)利用方案,減少生產(chǎn)過程中的能源消耗和廢棄物排放。同時(shí),芯佰微也積極參與社會(huì)公益活動(dòng),為社區(qū)和環(huán)境貢獻(xiàn)自己的力量。這些舉措不僅體現(xiàn)了公司的社會(huì)責(zé)任擔(dān)當(dāng),也為其贏得了更多客戶和合作伙伴的信任和支持。
C-TECH Co., Ltd自1997年成立以來,始終將技術(shù)創(chuàng)新作為公司發(fā)展的核心驅(qū)動(dòng)力。在2008年,公司敏銳地捕捉到了5G通信技術(shù)的潛在商機(jī),開始投入大量資源進(jìn)行研發(fā)。經(jīng)過數(shù)年的不懈努力,終于在2018年成功開發(fā)出了5G(3.5GHz)頻段中頻、射頻SAW(聲表面波)濾波器,這一技術(shù)突破為公司在5G通信市場(chǎng)贏得了先機(jī)。通過不斷的技術(shù)創(chuàng)新,C-TECH Co., Ltd逐步確立了在電子行業(yè)中的領(lǐng)先地位。
為了進(jìn)一步提升技術(shù)水平和擴(kuò)大市場(chǎng)份額,CSDC積極尋求與國(guó)際半導(dǎo)體巨頭的合作。通過與這些公司的技術(shù)交流和合作研發(fā),CSDC不僅獲得了先進(jìn)的技術(shù)支持,還成功打入了國(guó)際市場(chǎng)。這一合作不僅提升了CSDC的品牌影響力,也為其帶來了更多的商業(yè)機(jī)會(huì)。
#include #define uchar unsigned char #define uint unsigned int uint time void timer1(void) interrupt 1 using 1{ //定時(shí)器0中斷,定時(shí)1ms// TH0=(65536-1000)/256; TL0=(65536-1000)%256; time++; } void delay(uint n){ &n ...… 查看全部問答∨ |
疊拓(原迪易通)信息技術(shù)有限公司 (Tieto),成立于1968年,是一家北歐的從事軟件解決方案的全外資集團(tuán)公司,分別在赫爾辛基和斯德哥爾摩證券交易所掛牌。是綜合實(shí)力北歐地區(qū)第一,歐洲前三的IT業(yè)務(wù)供應(yīng)商。 請(qǐng)將簡(jiǎn)歷發(fā)送到 xiaoli.yang@tieto.co ...… 查看全部問答∨ |
S3C2440A嵌入式手持終端電源管理系統(tǒng)設(shè)計(jì) replyreload += \',\' + 374598;這是一個(gè)關(guān)于電源管理設(shè)計(jì)的文章,附上一段節(jié)選供參考?;靥敲赖?nbsp; 電源管理軟件設(shè)計(jì)可分為:操作系統(tǒng)層和應(yīng)用層。 (1)操作系統(tǒng)層 電源管理的功能執(zhí)行層,它 ...… 查看全部問答∨ |
|
WINCE6.0觸屏驅(qū)動(dòng)怎么沒有鼠標(biāo)光標(biāo)以及不能產(chǎn)生右鍵 各位高手,我使用MS的分層驅(qū)動(dòng)模型寫個(gè)一個(gè)觸屏驅(qū)動(dòng),目前驅(qū)動(dòng)可以進(jìn)行校準(zhǔn),能夠拖動(dòng)、單擊、雙擊,就是不能產(chǎn)生右鍵,而且桌面上沒有鼠標(biāo)光標(biāo)。還望各位高手指點(diǎn)迷津。在下不勝感激?!? 查看全部問答∨ |
1>.\\YX_GPS\\port\\c\\yu_port_gui.c(79) : error C2039: \'Release\' : is not a member of \'IDirectDrawSurface\' 1> D:\\Program Files\\Windows CE Tools\\wce500\\STANDARDSDK_500\\include\\ARMV4I\ ...… 查看全部問答∨ |
以UC/OS為例子,系統(tǒng)調(diào)度是由一個(gè)軟中斷A進(jìn)行管理的,而這個(gè)軟中斷是由系統(tǒng)的時(shí)鐘節(jié)拍中斷HA觸發(fā)的,但是同時(shí),一個(gè)問題,假如現(xiàn)在一個(gè)其他的硬件中斷HB觸發(fā)了另外一個(gè)軟中斷B,但是不巧的是,這個(gè)B在執(zhí)行的時(shí)候,HA觸發(fā)了,那么: ...… 查看全部問答∨ |
ST推出STM32后,STM32的第一個(gè)1K訂單已經(jīng)完成。 6.11號(hào)ST推出STM32,上海XX自動(dòng)化公司在前3周內(nèi)完成了PCB設(shè)計(jì)和軟件代碼的移植,第四周內(nèi)做了10套測(cè)試樣片,現(xiàn)場(chǎng)連續(xù)測(cè)試2個(gè)月,EMC,工業(yè)測(cè)試全部測(cè) ...… 查看全部問答∨ |
我懷疑我的設(shè)置順序,如下: //初始化GPIO接口 /* Enable GPIOC clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Peri ...… 查看全部問答∨ |
我現(xiàn)在用ZET6的FSMC控制TFT了,系統(tǒng)上還有SRAM,NOR等,現(xiàn)在PE5口已經(jīng)是FSMC的地址線A20了,但是我的存儲(chǔ)器地址線 ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 智能護(hù)眼臺(tái)燈設(shè)計(jì)
- 蓄電池高能脈沖充電系統(tǒng)設(shè)計(jì)
- 基于51單片機(jī)定時(shí)器的電子時(shí)鐘設(shè)計(jì)方案
- 瑞薩電子推出面向單電機(jī)應(yīng)用優(yōu)化的卓越MCU, 涵蓋電動(dòng)工具、家用電器等廣泛應(yīng)用場(chǎng)景
- 免費(fèi)申請(qǐng)?jiān)u測(cè):和小伙伴們一起暢玩STM32F769I
- 秋風(fēng)送爽,你來答題我送禮!看Maxim 深入淺出低功耗處理器視頻精彩為您呈現(xiàn)!
- 福祿克專家級(jí)熱像儀震撼上市,參與問答贏精美好禮!
- 下載《TI MCU與無線連接技術(shù)研討會(huì)講座實(shí)錄》抽獎(jiǎng)贏好禮!
- 免費(fèi)獲贈(zèng)LPC800迷你板 搶先體驗(yàn)MO+優(yōu)異性能!
- 捉蟲行動(dòng)二:爭(zhēng)做EE下載中心黑貓警長(zhǎng)!
- 端午節(jié)芯幣兌換禮品專場(chǎng)
- 【有獎(jiǎng)問答】術(shù)業(yè)有專攻,電容我在行!
- 【提問有禮】TI MCU,今天你提問了嗎?
- 2020年日本工業(yè)機(jī)器人能否繼續(xù)坐穩(wěn)頭把交椅?
- 創(chuàng)造石黑浩:20年打造30多款網(wǎng)紅機(jī)器人
- 哈佛大學(xué)研發(fā)迄今為止最小、最快的微型機(jī)器人
- 機(jī)器人HyQ主要利用對(duì)角線腳對(duì)的轉(zhuǎn)換實(shí)現(xiàn)平衡
- 中國(guó)第一款消化內(nèi)鏡機(jī)器人解析
- AMD CEO 蘇姿豐:2021 年底前芯片缺貨持續(xù)存在
- s3c2440裸機(jī)實(shí)現(xiàn)圖片顯示
- arm串行通信
- 泰永長(zhǎng)征參編充換電領(lǐng)域國(guó)家標(biāo)準(zhǔn)正式獲批
- 基于CAN 總線的智能家電遠(yuǎn)程監(jiān)控系統(tǒng)
- 控制信號(hào)頻率與設(shè)備諧振頻率
- 一道電源類的題目,希望大神稍微指點(diǎn)指點(diǎn)
- 監(jiān)控存儲(chǔ)與視頻監(jiān)控的市場(chǎng)發(fā)展前景分析
- 針對(duì)Tempest C5在 keil 下的調(diào)式補(bǔ)丁
- 無線感應(yīng)充電器
- [SAM R21]SAM R21 Xplained硬件分析(三)
- MSP430常見問題之指令系統(tǒng)類
- 學(xué)模擬+【《運(yùn)算放大器噪聲優(yōu)化手冊(cè)》讀書筆記五】
- 51單片機(jī),超聲波測(cè)距,反向器,cx20106
- stm32eeprom基于什么原理