久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
關于STM32使用UART4問題,請高手指點
[打印本頁]
作者:
hongjiang2017
時間:
2018-3-21 13:35
標題:
關于STM32使用UART4問題,請高手指點
最近小弟學習STM32編程,購買了一個模塊(WiFi-ESP8266),將引腳接入UART4來驅動,進行收發數據,后面發現,發出去的數據和接收的數據一模一樣,感覺不對勁,因為按照模塊說明收到數據后,返回值和發送的是有區別的,但是找了好多資料沒有找到問題,請各位有經驗的大哥指教;如下是代碼:(使用的是STM32F103VET6芯片)
這個是UART4的初始化:
void UART4_INIT(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //PB10
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;//PB11
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART4,ENABLE);
RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART4,DISABLE);
USART_InitStructure.USART_BaudRate = 115200;
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(UART4, &USART_InitStructure); ;
NVIC_InitStructure.NVIC_IRQChannel = UART4_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 4;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 4;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
USART_ITConfig(UART4, USART_IT_RXNE, ENABLE);
//USART_ITConfig(UART4, USART_IT_TC, ENABLE);
USART_Cmd(UART4, ENABLE);
USART_ClearFlag(UART4, USART_FLAG_TC);
}
這個是發送函數
void WiFi_SendData(u8 *str,unsigned int count)
{
if(count>0)
{
Sendstr1 = str;
Send_Count1 = count;
//GPIO_SetBits(RS485_RTS_PORT, RS485_RTS);
USART_ITConfig(UART4, USART_IT_TXE, ENABLE);
}
}
中斷函數:
void UART4_IRQHandler(void) //中斷函數
{
unsigned char data=0;
unsigned char sbuf_temp = 0;
/******************/
if(uart.recetime == 0)
{
uart.len = 0;
uart.errorbit = 0 ;
RS485_Read_Count=0;
RS485_Read_OK=0;
}
uart.recetime = 100;//這個是作為是否接收完成的標示,在別的地方用一個定時器控制
/*******************/
if(USART_GetITStatus(UART4, USART_IT_RXNE) != RESET) //判斷是否有接收到數據
{
data = USART_ReceiveData(UART4);
sbuf_temp = data;
uart.revice_buffer[uart.len] = sbuf_temp
uart.len++;
RS485_Receive_Time = 0;
if(uart.len > 80 -2)
{
uart.errorbit = 1 ;
uart.len = 76 ;//·¢ÏÖ′íÎó
}
}
if(USART_GetITStatus(UART4, USART_IT_TXE) != RESET) //發送數據
{
if(Send_Count1)
{
USART_SendData(UART4,*Sendstr1++);
Send_Count1--;
}
else
{
USART_ITConfig(UART4, USART_IT_TXE, DISABLE);//發送完畢,停止發送
USART_ITConfig(UART4, USART_IT_RXNE, ENABLE);//轉變成,等等接收
RS485_Send_Time=1;//接收完成標示
}
}
if(USART_GetFlagStatus(UART4,USART_FLAG_ORE)==SET)
{
USART_ClearFlag(UART4,USART_FLAG_ORE);
USART_ReceiveData(UART4);
}
}
作者:
hongjiang2017
時間:
2018-3-21 13:38
我后面測試了,好像,發送也沒有發成功
作者:
hongjiang2017
時間:
2018-3-25 13:41
已經解決了,搞了好多天。
作者:
yumi_wu
時間:
2018-10-29 17:24
遇到同樣的問題。。求助。。怎么解決的?
作者:
ahzhong2001
時間:
2018-10-29 17:33
你是電路板的RXD和TXD連到一起了吧。
作者:
absond11
時間:
2020-7-10 15:57
hongjiang2017 發表于 2018-3-21 13:38
我后面測試了,好像,發送也沒有發成功
怎么解決的啊 兄弟
作者:
absond11
時間:
2020-7-10 16:02
怎么解決的呢 樓主
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩精品久久久久
|
日韩中文字幕一区
|
日韩欧美一级片
|
欧美成人视屏
|
亚洲国产精品网站
|
亚洲一二三区在线观看
|
亚洲黄色一级毛片
|
国产欧美日韩一区
|
在线看片福利
|
一区二区三区免费网站
|
成年免费大片黄在线观看岛国
|
91免费在线视频
|
国产黄色小视频在线观看
|
精品免费
|
欧美一区成人
|
aaaaaa大片免费看最大的
|
jlzzxxxx18hd护士
|
99视频在线免费观看
|
欧美国产日韩在线观看成人
|
欧美性成人
|
精品久久久久久久久久久久久久
|
拍戏被cao翻了h承欢
|
av网站免费在线观看
|
精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区
|
国外成人在线视频
|
欧美亚洲综合久久
|
av网站在线看
|
看av网址
|
欧美不卡一区二区
|
亚洲精品乱码久久久久久按摩观
|
成年视频在线观看
|
日韩一区二区三区在线
|
中文字幕电影在线观看
|
农村妇女毛片精品久久久
|
黄色在线播放视频
|
日产精品久久久一区二区福利
|
精品亚洲一区二区三区四区五区高
|
国产视频久久久
|
亚洲精品久久久久久久久久久久久
|
亚洲激情在线观看
|
羞羞视频在线观看免费观看
|