欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
MSP430F169單片機(jī)串口通信程序 求助
[打印本頁]
作者:
ruopan
時(shí)間:
2020-8-14 16:06
標(biāo)題:
MSP430F169單片機(jī)串口通信程序 求助
芯片 :MSP430F169
IO:3.6 3.7
功能 :串口通信
問題:
不能建立通信
個(gè)人感覺自己的串口配置沒問題希望大佬慧眼識精解決一下問題
代碼:
#include "msp430x16x.h"
#include "math.h"
void BASCI_CLOCK(void);
void write_flashA(void);
void copy_flashAtoB(void); //沒用到
void UART_GPIO_CONFIG(void);
void UART_CONFIG(void);
unsigned char value='0'; //要寫的8位數(shù)據(jù)
unsigned int i;
static char string1[] = { "Hello World\r\n" };
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
BASCI_CLOCK();
FCTL2 = FWKEY + FSSEL0 + FN5; //FLASH時(shí)鐘初始化 MCLK 32分頻
write_flashA();
//copy_flashAtoB(); //復(fù)制
_NOP();
UART_GPIO_CONFIG();
UART_CONFIG();
_EINT();
while(1);
}
//寫內(nèi)存
void write_flashA(void)
{
char *flash_ptr;
unsigned int i;
flash_ptr = (char *) 0x1080; //指針指向你寫的F
FCTL1 = FWKEY + ERASE; //執(zhí)行寫操作權(quán)限 擦除個(gè)別段
FCTL3 = FWKEY; //賦予寫操作權(quán)限
*flash_ptr = 0; //執(zhí)行一次flash 需要一次假寫入
FCTL1 = FWKEY + WRT; //執(zhí)行寫操作權(quán)限 打開寫模式
for (i=0; i<128; i++)
{
*flash_ptr++ = value;//寫入數(shù)據(jù) 真正執(zhí)行寫操
value++;
}
FCTL1 = FWKEY ; //清除 WRT寫操作位
FCTL3 = FWKEY + LOCK; //FLASH上鎖 防止誤操作
}
//復(fù)制內(nèi)存
void copy_flashAtoB(void)
{
char *flash_ptrA;
char *flash_ptrB;
unsigned int i;
flash_ptrA = (char *) 0x1080; // 指針指向閃存段A
flash_ptrB = (char *)0x1000; // 指針指向閃存段B
FCTL1 = FWKEY + ERASE; // 執(zhí)行寫權(quán)限 擦除緩存
FCTL3 = FWKEY; // 執(zhí)行寫權(quán)限
*flash_ptrB = 0; // 執(zhí)行一次假寫操作
FCTL1 = FWKEY + WRT; // 執(zhí)行寫權(quán)限 開啟寫模式
for (i=0; i<128; i++)
{
*flash_ptrB++ = *flash_ptrA++; // 寫入數(shù)據(jù)
}
FCTL1 = FWKEY; // 關(guān)閉 WRT 寫模式位
FCTL3 = FWKEY + LOCK; // 對寄存器進(jìn)行上鎖
}
void UART_GPIO_CONFIG(void)
{
P3SEL |= 0XC0;
}
//串口1配置
void UART_CONFIG(void)
{
ME2 |= UTXE1 + URXE1;
U1CTL |= CHAR;
U1TCTL |= SSEL1;
U1BR0 |= 0X45;
U1BR1 |= 0X00;
U1MCTL |= 0X16;
U1CTL &= ~SWRST;
IE2 |= URXIE1 + UTXIE1;
IFG2 &=~UTXIFG1;
}
#pragma vector = UART1TX_VECTOR
__interrupt void UART1_TX(void)
{
if(i<(sizeof(string1)-1))
{
U1TXBUF = string1[i++] ;
}
}
#pragma vector = USART1RX_VECTOR
__interrupt void UART1_RX(void)
{
if(U1RXBUF == 'u')
{
i=0;
U1TXBUF = string1[i++];
}
}
//基本時(shí)鐘初始化 8MHZ作為 MCLK 和 SMCLK
void BASCI_CLOCK(void)
{
unsigned int iq0;
BCSCTL1&=~XT2OFF;
do
{
IFG1&=~OFIFG;
for(iq0=0xff;iq0>0;iq0--);
}
while((IFG1&OFIFG)!=0);
BCSCTL2=0x88;
}
作者:
ruopan
時(shí)間:
2020-8-14 16:09
昨天的帖子解決了問題 能正常簡歷通信,然后今天用同樣的代碼就蹦了
作者:
ruopan
時(shí)間:
2020-8-17 14:24
ruopan 發(fā)表于 2020-8-14 16:09
昨天的帖子解決了問題 能正常簡歷通信,然后今天用同樣的代碼就蹦了
現(xiàn)在,我能正常通信了,但是還是希望有大手子幫我看看之前建立不了的通信問題在哪里
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1