-
每栋第
-
本帖最后由 paulhyde 于 2014-9-15 03:23 编辑 我顶,好贵啊,比赛在即,好坑爹
-
我顶
-
好东西啊好东西好东西
-
有没有用430做高效恒流源的资料,最好是带有算法的那种,比如PID
-
:victory: 国赛有动力,合作创辉煌啊爱爱爱
-
本帖最后由 paulhyde 于 2014-9-15 03:35 编辑 做一些恒流恒压的模块,呀,升压降压啊,还有写一些算法来采样啊:titter:
-
学习了,以后得好好研究学习才得:victory:
-
了解明白,这个得自己动脑
-
那就要写转换数据的代码吗?还是在定义变量哪里改格式?
-
现在已经能够,发送接收10以下的数字,但是要以十六进制在串口小助手上面,发送与接收,有没有人懂为什么啊
-
将 UCA0IE |= UCRXIE+UCTXIE; //使能 USART0 TXD/RXD 打开,屏蔽key_P1() 就能输入键盘值,也可以接受PC机给的数据,但是发布出去,接收的数值也不对,求指点
-
:Cry:
-
/////////////////////////////////////////////////////////////
// MSP430F5438
// -----------------
// /|\| |
// | | |
// --|RST |
// | |
// | P3.4/UCA0TXD|------------>
// | | 9600 - 8N1
// | P3.5/UCA0RXD|
-
#include
#define uint unsigned int
#define uchar unsigned char
int k,i;
uchar temp,sendchar,receivechar;
/*
unsigned char UCA3Read()
{
while (!(UCA3IFG&UCRXIFG));
return UCA3RXBUF;
}
void UCA3Write( unsigned char sendchar)
{
while (!(UCA3IFG&UCTXIFG));
UCA3TXBUF = sendchar;
}
*/
void main()
{
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
P5DIR |= BIT4;
P5SEL|= (BIT2+BIT3); // 端口功能选择外部晶振XT2=24MHz
UCSCTL6 &= ~XT2OFF ; // XT2振荡器使能
UCSCTL6 |= XT2DRIVE0 + XT2DRIVE1 ; // XT2 最大驱动模式 24~32MHz
UCSCTL3 |= SELREF_2; //FLLREFCLK =REFOCLK .且FLLREFCLK不分频
UCSCTL4 |= (SELA__REFOCLK+SELM__XT2CLK+SELS__XT2CLK); // ACLK=REFO,SMCLK=XT2,MCLK=XT2
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); // 清除 XT2,XT1,DCO 错误标志
SFRIFG1 &= ~OFIFG ; //清除晶振失效中断标志
}while(SFRIFG1&OFIFG);// 检测振荡器错误标志
UCA3CTL1|=UCSWRST; // 使能关闭状态机。USCI在复位后逻辑电平保持不变
P10SEL|= 0X30; // 选择引脚功能0x30
P10DIR|= 0X10 ; // 选择引脚功能
UCA3CTL1|= UCSSEL__SMCLK ; // UART_CLK = SMCLK
UCA3BR0= 0x0d ; //粗调波特率控制寄存器0(UCA3BRx的低八位)9600
UCA3BR1=0x00 ; //粗调波特率控制寄存器0(UCA3BRx的高八位)
UCA3MCTL|=(UCBRS_0 + UCBRF_3+UCOS16); // UCBRSx=0, UCBRFx=3 UCOS16=1过采样模式使能
UCA3CTL1&= ~UCSWRST ; // 启动状态机
while(1)
{
receivechar = UCA3RXBUF;
UCA3TXBUF = 0x55;
for( i = 8000; i > 0; i--);
}
}
// Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{
switch(__even_in_range(UCA0IV,4))
{
case 0:break; // Vector 0 - no interrupt
case 2: // Vector 2 - RXIFG
while (!(UCA3IFG&UCRXIFG));
UCA3TXBUF = receivechar;
break;
case 4:
while (!(UCA3IFG&UCTXIFG));
UCA3TXBUF = sendchar;
break;
default: break;
}
}
修改了一下,懵懵懂懂的,参照TI及一些厂家的程序,这个又可以用, 而且关于那TXD与RXD的定义,定义在P10却是接在P5.4,5可以正常运行
-
看也要回复啊
-
我的是电信的,怪不得,学校路由器确实也多,不过是最近几天的,连续三四天都是这样,那一个郁闷
-
已经测试成功,程序没有问题,要加强:titter: 学习了
-
经过测试,应该是板子的问题,做板不够细心,芯片那块要非常,准备换一块板了:Sweat:
-
用的是5V外电源供电,如前面板子的接法所示,电源头介入,通过AMS11173.3V转电压给430