MCU:STM32F334C8T6Frameware:STM32F3348-Discovery_FW_V1.0.0實(shí)現(xiàn)功能:在PC使用串口調(diào)試助手向MCU發(fā)送字符(數(shù)據(jù)),MCU將接收到的字符發(fā)回PC代碼:#include"main.h"intmain(){GPIO_Config();USART_Config();NVIC_C
0目標(biāo)1STM32串口簡(jiǎn)介2硬件設(shè)計(jì)3軟件設(shè)計(jì)4下載驗(yàn)證0.目標(biāo)利用串口1不停的打印信息到電腦上,同時(shí)接收從串口發(fā)過來的數(shù)據(jù),把發(fā)送過來的數(shù)據(jù)直接送回給電腦。1.STM32串口簡(jiǎn)介串口設(shè)置的一般步驟可以總結(jié)為如下幾個(gè)步驟
出現(xiàn)的問題:先使用USART中斷函數(shù)接收數(shù)據(jù),判斷是否接收到每幀數(shù)據(jù)的起始標(biāo)記字符。如果接收到就關(guān)閉USART中斷,然后開啟DMA用于后續(xù)串口數(shù)據(jù)的接收。但是出現(xiàn)一個(gè)問題是每幀數(shù)據(jù)的起始標(biāo)記為:A5 4A 05 00 00 40 8
數(shù)據(jù)幀滿足下面格式:幀頭部(Head)類型(Type)長(zhǎng)度(Length)值(Value)CRC校驗(yàn)2字節(jié)1字節(jié)1字節(jié)X字節(jié)2字節(jié)0xaa0x55Xvoid USART6_Init (void){GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_Init
遇到問題:PC端發(fā)送給stm32的字符串?dāng)?shù)據(jù),只有最后一個(gè)字節(jié)被保存在數(shù)組的首地址,其他數(shù)據(jù)都丟失,而且數(shù)組中只有首地址有數(shù)據(jù)。比如我用PC給stm32發(fā)送abcd,返回到PC串口助手的數(shù)據(jù)只有d,查看數(shù)組發(fā)現(xiàn)里面數(shù)據(jù)[d,
(1)首先要配置USART1相關(guān)的GPIO(PA9,PA10),和USART1的初始化參數(shù)配置(2)然后在配置中斷向量控制器(3)寫發(fā)送數(shù)據(jù)的函數(shù)注釋:main()函數(shù)在寫入數(shù)據(jù)賦值時(shí),單個(gè)的數(shù)據(jù)或字符的發(fā)送根據(jù)ASCII碼表進(jìn)行換算;h
單片機(jī)每次發(fā)送或者接受完數(shù)據(jù)(8位數(shù)據(jù)將保存在緩沖區(qū)中),會(huì)自動(dòng)觸發(fā)接受或者發(fā)送中斷。因此只需要中斷置位以后再緩沖區(qū)中讀數(shù)據(jù)(或者發(fā)送數(shù)據(jù))。1 /*************************************************2 *rece